Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Self-contained systems: an introduction

Self-contained systems: an introduction

Systems we build for the web fall across a wide spectrum of shapes and sizes. They range from monoliths spanning entire businesses to networks of tiny services connected at a varying degree of coupling. In this talk we will discuss the Self-Contained Systems architecture, or SCS for short. It's an approach to designing distributed systems guided by a handful of clear principles. By following them we can build systems which are loosely coupled, separated along boundaries of our domain, and resilient to partial failure. After discussing principles defining SCS we will compare them to microservices and review important differences. Finally, we will look at concrete examples of the SCS approach deployed out in the real world.

As seen at Warsaw Cloud Native #9.


Jan Stępień

October 16, 2017

More Decks by Jan Stępień

Other Decks in Programming


  1. Self Contained Systems with Jan Stępień

  2. @innoQ @cljmuc

  3. Func%onal
 programming Genera%ve tes%ng So5ware architecture

  4. Func%onal
 programming Genera%ve tes%ng So5ware architecture
 of distributed
 web applica%ons

  5. μservices in all shapes and sizes 1. Ne0lix 2. Fred

    George 3. Serverless 4. Bounded contexts
  6. a μservice is a fairly broad term 1. μservices must

    be independently
  7. If you reach this state,
 there is no denying

    you have actually built
 a distributed monolith. — Daniel Westheide
 The perils of shared code
  8. Self-Contained Systems

  9. An autonomous
 web applica9on

  10. Encompasses UI,
 logic, and data

  11. Owned by
 a single team

  12. Minimised shared infrastructure

  13. Systems share no business code

  14. Aside from a web UI,

  15. Aside from a web UI,
 an op9onal API

  16. Loose integra9on
 and no shared UI

  17. Asynchronous communica9on

  18. Why should we care? — I’m asking

  19. Higher reliability
 and lower latency

  20. Loose UI

  21. Integra9on through links

  22. None
  23. Integra9on through transclusion

  24. None
  25. Domain-driven separa9on

  26. Local decisions

  27. Independence and replaceability

  28. Gradual

  29. An e-commerce example Search Products Cart Payment Home

  30. None
  31. None
  32. None
  33. None
  34. Self Contained Systems @janstepien janstepien.com