Showing posts from January, 2018

Microservices: Issues Associated with RDBMS and Strong Data Consistency

The goal of this article is to explain the issues associated with the RDBMS (Relational Database Management Systems) and strong data consistency in a microservice ecosystem. This article also serves as a primer for a bunch of articles about microservice architectural patterns (CQRS, Event Sourcing, Polyglot Persistence, etc) that I wanted to share to the .NET community. Relational Database Management Systems (RDBMS) Software development often starts with a thorough information gathering. Software developers, business analysts and product owners sit down for long hours inside meeting rooms performing these steps. After performing some careful analysis on information gathered, traditional development teams jump start application development by designing a relational database schema that would be used to store and organize data that an OLTP application need to present its current state. There are countless reasons (Atomicity,

Microservices: Why choose Containers over Virtual Machines.

In the previous article, we've setup a cluster of SSH-enabled Raspberry PIs that will serve as nodes for a Kubernetes cluster. Before demonstrating the steps required to install Docker and Kubernetes on our Raspberry PI Cluster, we will tackle the added value that containers provide over virtual machines. Computing is the process of running "intangible functions" on a set of "tangible" resources (CPUs, RAM, Disk and Network) to accomplish a task at hand, from a simple "Hello World" application to a complex distributed system. Over time, the hardware producers had continuously unveiled more powerful versions of their products, often the applications running on top of them does not even utilize a fraction of the resources provided by their hosting physical machines. Thus, giving birth to virtualization of resources that enable applications to run concurrently. Prior to the cloud revolution,