Beyond Microservices: Streams, State and Scalability – Gwen Shapira

Explore the limitations of microservices and discover alternative approaches to building scalable, fault-tolerant systems, including event-driven architecture, shared streams, and local state, to achieve independence and evolution.

Key takeaways
  • REST APIs are well understood, but not scalable or fault-tolerant, leading to a “distributed monolith” problem.
  • Microservices should be independent and able to evolve independently, but services often become tightly coupled due to shared state and APIs.
  • Event-driven architecture addresses this problem by decoupling services and allowing them to react to events in their own way.
  • API gateways can help simplify traffic management and security, but can also create a bottleneck and increase complexity.
  • Serverless architecture can be powerful, but can also introduce new challenges and overhead.
  • Distributed event-driven systems can help maintain scaling and fault-tolerance, as well as simplify debugging and maintenance.
  • Important concepts include:
    • Shared streams of events
    • Local state and caching
    • Independent microservices
    • API gateways and gateways
    • Event-driven architecture
    • Microservices in extreme (function-as-a-service)