Posts

Data modelling techniques in MongoDB We grew up learning about normal forms, 1 st , 2nd and 3 rd normal form. Storage was not cheap those days and hence the objective was to save storage. But as we grew up, the world around us also changed. Applications transformed to a distributed architecture from an N Tier architecture. Data volume increased exponentially and so is the data velocity. On top of it, the structure of the data is no longer fixed and predictable. It is polymorphic and does not follow a strict schema. This change saw the birth of NoSQL databases. They took advantage of cheaper storage and hence became bold enough to trade off non-redundancy of data with performance and scalability. They are a complete different breed who does not follow referential integrity. Joins are sacrificed to be able to scale horizontally. The long known ACID properties of databases are no longer relevant for such databases, they are what we call now are BASE . In such a scenario, the da

Microservice Overview

A brief overview of Microservices   The evolution Microservices is the new buzz word but it is often misunderstood a lot. It is becoming the defacto application development architecture style. But before talking about microservices, we need to look back in the past and see how it evolved over a period of time. I started as a mainframe Cobol programmer. In those days, we used to write the driver or the main Cobol program which in turn would call programs and those programs used to call more programs. The called programs were either statically or dynamically called in the calling program. The entire set of programs used to be compiled through mainframe compile and then link edit jobs. If the programs were statically called, any change would mean to compile and link edit the entire set of programs and redeploy. A similar approach existed in the java world as well where the entire application is deployed as an EAR file or a WAR file. This single binary deployment was decomposed int