28Jun2016

Database Development: RethinkDB is a modern database for real time Web

Nowadays, almost all applications are asynchronous multi layer systems linked together via events scheme. One module of the system subscribes on events produced by another part. It’s regular Listener pattern. We have been designed and implemented a lot of applications in this way, but all of them are placed in the middle layer or UI side. It would be nice to have similar functionality on the data layer of persistent storage. Redis [http://redis.io/] as a Database Development system provides Listener approach out of the box. But Redis is in-memory key-value storage. It’s used rather as cache. There is RethinkDB database [https://www.rethinkdb.com/] supported Listener pattern and used as clustered document storage like MongoDB.

Installation

RethinkDB is open-source. There are installation packages available for all major platforms. On the other hand, it would be better to use docker container:

docker run -d -P –name rethink1 rethinkdb

Technically, the database is a set of tables. A table contains documents similar to MongoDB. JSON is used as representation of the nested structure of a document. There are 4 official drivers for RethinkDB: python, ruby, java and javascript for node.js. If you use other programming language, there are a lot of community-managed drivers based on JSON protocol.

RethinkDB has out of the box sharding and replication clustering. You can configure a cluster via Web UI administration console. Last one can be used for monitoring, as well.

Read more
08Jun2016

Application Development: Polymer framework is a new better Web

Web and HTML as its main technology was designed more than 20 years ago. There was just the idea to publish rich format documents and reference each other in easy way. The purpose of the Web has been changed drastically several times during these years. A proposition to reinvent HTML sounds reasonable. There is a lot of hype around new Polymer project [https://www.polymer-project.org/1.0/] provided by Google. Its version 1.0 is already released and used widely. Polymer is based on Web Components technology. In practice, it’s treated as the same.

Web Components

Web Components is HTML5 standard for both extending HTML as a language and providing modularity for rich SPA solutions. A component is a sort of reusable part of the page. It contains all 3 parts of web application: HTML template based on regular tags and other components treated as children, CSS styles specific for the component and JavaScript code of this logical part of the page:

Read more