architecture

1 posts in this category

Microservice architecture is the latest fad in software development, and as such it comes with numerous conflicting definitions. To help clear up this confusion, we’ll discuss what microservices are, how they relate to older development architecture patterns, and why and when they are useful. In the enterprise world, service oriented architecture was the established paradigm in software development, and this typically incorporated the SOAP standard and web services. Some concepts from SOA, such as loose coupling and domain-driven design, translate well into microservices, but other concepts such as global transactions and global data consistency do not scale well in such an architecture. One major pain point in SOA that microservices helps to address are monolithic applications and the pains behind deploying new versions of them. Another problem stems from incompatible implementations of SOAP being widely used which tend to nullify the benefits of using a web services standard for loose coupling. Expensive proprietary software is also a large downside to typical SOA style development which has not yet reappeared to a similar extent in microservices. Data scalability and schema evolution are another hard issue in monolithic architectures which tend to be more manageable in a microservices architecture.