Editorials

Micro Services

Many folks believe that Micro Services are only needed when you have a massively, web scale, user requirement for your applications. It turns out that there are other factors contributing to adopting a Micros Service design.

Speed of development is one driving factor served well by Micro Services. Because each service stands alone, it is possible for different teams to be working on different aspects of a system concurrently without concern for breaking software shared by both. How can this be? Because each team is working on a new version of their own software, consuming the existing version of the software from the other team. Even if they are working on software that will consume the new version, also in flight from the other team, there is nothing shared. So, they may safely develop with Mocks of the external software for a time.

What this means for a database system is that neither micro service shares the same database. There may be replication from one system to the other, perhaps. But, the design is more based on Master Data Management services than a single monolithic database design.

As a DBA you are more concerned with assuring a unique identifier is the same for an individual in all databases, rather than having a centralized, normalized database. No longer can you rely on referential integrity to assure everything is accurate.

What you have done is developed systems that are loosely coupled so that change can be made without breaking other systems. Key to this capability is the ability to host multiple versions of any Micro Service. This reveals two skills a modern DBA would do well to acquire. 1) Master Data Management, keeping data consistent across multiple data stores, and 2) Agile Database Design, allowing change to occur quickly, while still supporting deprecated requirements.

In my opinion, Micro Services are more than just the new software architecture fad. The nature of loosely connected services, supporting multiple concurrent versions, provides a framework that is easier to maintain, change, and collaborate that any other method currently in use. Take a look and see what you think.

Cheers,

Ben