
11/29/2017 · Bobby Calderwood
What this post added
This post introduces a functional programming analogy for microservices, contrasting it with the object-oriented analogy. It proposes an event-driven architecture where microservices act as reactive functions processing immutable events from a durable log. Key concepts like CQRS, Event Sourcing, and the 'single writer' principle are discussed. Microservices are categorized into 'Functional Core' and 'Imperative Shell' (materialized views and side-effect execution). Kafka, Kafka Streams, and Kafka Connect are presented as foundational technologies for this architectural style. A simplified banking use case is used to illustrate the concepts.