Book Image

Mastering RethinkDB

By : Shahid Shaikh
Book Image

Mastering RethinkDB

By: Shahid Shaikh

Overview of this book

RethinkDB has a lot of cool things to be excited about: ReQL (its readable,highly-functional syntax), cluster management, primitives for 21st century applications, and change-feeds. This book starts with a brief overview of the RethinkDB architecture and data modeling, and coverage of the advanced ReQL queries to work with JSON documents. Then, you will quickly jump to implementing these concepts in real-world scenarios, by building real-time applications on polling, data synchronization, share market, and the geospatial domain using RethinkDB and Node.js. You will also see how to tweak RethinkDB's capabilities to ensure faster data processing by exploring the sharding and replication techniques in depth. Then, we will take you through the more advanced administration tasks as well as show you the various deployment techniques using PaaS, Docker, and Compose. By the time you have finished reading this book, you would have taken your knowledge of RethinkDB to the next level, and will be able to use the concepts in RethinkDB to develop efficient, real-time applications with ease.
Table of Contents (16 chapters)
Mastering RethinkDB
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Developing the Polyglot agent


As we have discussed earlier, the job of the Polyglot agent is to find out the changes in the table and then generate an event for the synchronization process.

For finding out the changes in the table, we already have the changefeed by RethinkDB, and for generating events, we can use the inbuilt EventEmitter class by Node.js.

The event emitter is the class in the Node.js; thus, to use it we need to inherit all the functions and property in our class. We can do this by using the following code:

const events = require('events'); 
class Polyglot extends events { 
  constructor() { 
    super(); 
  } 
} 
module.exports = Polyglot; 

Here we are using the ES6 extends keyword to perform the inheritance. In our constructor, we are calling the super() method to call the parent constructor, that is, the constructor of the event class.

Next, we need to assign a changefeed to our table and listen for the change. If there is a change in any of the data, we need to determine...