Bobby Calderwood - distinguished Engineer at Capital One - excellent article on micorservices and whether organizations should adopt, refrain from, or abandon microservices architecture. But more importantly what style of microservices would map most closely to the needs of the organization?
Author then touches on (at least) two styles of microservices:
- Famous Death Star diagram - small services calling each other synchronously, usually via HTTP
- Functional programming analogy
- Commander pattern
- CQRS and Event Sourcing
- Single (logical) writer
Death Star style view of microservices shares much in common with object-oriented programming: encapsulated data access and mutable state change are both achieved via synchronous calls. However, when the object-oriented analogy is extended to distributed systems, many problems arise.
Author also compares and contrasts the FP-style of microservices with the ubiquitous OO-style along several important dimensions: data access patterns, orchestration patterns, handling failure, write-time and read-time latency, reasoning about state over time, and dealing with side-effects. Excellent article!
[Read More]