Is Developing Applications In NoSQL, A Radical Culture Change ?

“In NoSQL, we store the data as many times as necessary and according to the requests. There is no fixed pattern or concept of transaction”. In return, the scalability is practically infinite, since it is enough to distribute the database on a growing number of servers, which can be geographically distributed. NoSQL database engines promise to break the locks. A different way to organize the data is to achieve their end, and the NoSQL engines jostle the established order.

The volume of data will increase by 40% per year in the coming years. In addition, with the move towards the digital enterprise, this data will be accessed by a growing number of users outside the company. Faced with this evolution, the relational database engines are out of breath. According to the survey long ideal for building traditional critical applications, this model is poorly suited to Internet applications because the ability to evolve relies heavily on the unit power of the server.

In particular, the notion of relation restricts scalability because it implies that all data is stored in the same place and is organized to be interrogated in different ways. These limits are difficult to reconcile with new Internet applications, which often require starting small, power up suddenly and overcome geographical constraints.

Wide Varieties of Technology

Since then, the NoSQL databases such as DynamoDB, MongoDB, are as well suited to traditional applications requiring scalability, as they are to high-volume Internet or big data applications, with many users and handling structured or unstructured data. Choose from a wide variety of technologies is an explanation says, “The NoSQL is a polymorphic movement with many architectures and technologies, from the simplest to the most advanced”.

The first phase of a project will, therefore, consist in choosing the right technology. “It’s a big job upstream, especially since the same application will often use different technologies, depending on the type of data”. The selection criteria will be the type of application (cache, analytics, content management, e-commerce.) or production constraints (high availability, elasticity, volumetric, number and geographic dispersion of users). The choice will be complicated by a still plethoric offer. Some products are exclusively in the cloud (Microsoft Storage Table or Amazon Dynamo DB).

Available in open source or, for example, on the Document DB on AWS, MongoDB is one of the best-known NoSQL engines. “Cassandra is more like an extraterrestrial and will rather be dedicated to the storage of very large amounts of data that can be counted in billions of elements, with high availability”. Simple technology integration for developers, the technological leap depends on the type of NoSQL engine.

MongoDB has an interface in JavaScript; Cassandra is associated with the CQL language (Cassandra Query Language). But you often must go through APIs rather than language. “The MongoDB learning curve is very fast, whether you’re working with PHP, Java or another language this operation is few and much simpler than with SQL. But if we adopt Cassandra or Redis, the impact on the application is very strong, especially because there is no equivalent to SQL and the base cannot be “requested”.

Interface in Javascript

It is important to rethink how the data is represented. Nowadays we educate to make several tables and to standardize the data whereas, in NoSQL, they will often be grouped in the same structure.”. Finally, we must unlearn the old reflexes. But once this investment is made, the developer will also benefit from facilities.

(For Example: The notion of transaction can be simplified by grouping in a single document all the operations to be performed. Similarly, some algorithms, especially in the field of analytics, will be much more efficient and easier to parallelize an impact on the organization and the methodologies. On the other hand, the variety of technologies noSQL imposes a reorganization of the teams. The High-level architects with a global view of the project will rely on very advanced skills in each NoSQL technology.

Moreover, the NoSQL evolves the relationship between business, development, and production because it favors agile methods and DevOps. It is once stated that by removing silos between databases and development, NoSQL is better suited to iterative development.