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.

Ae7a42fb716793697b1d222f3cc753b8?s=128

Jan Stępień

October 16, 2017
Tweet

Transcript

  1. Self Contained Systems with Jan Stępień
 @janstepien

  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
 deployable
  7. If you reach this state,
 there is no denying
 that

    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
 integra9on

  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
 migra9on

  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