Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Reactive Microsystems (Sw Crafters Barcelona 2018)

88 views

Published on

A lot has been said about splitting the monolith.
This talk focuses on what alternatives we have when refactorring each of the splits we take away from the monolith (and how we can use them in the monolith itself).
MICROSERVICES is hype, there's a world between mono and micro.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Reactive Microsystems (Sw Crafters Barcelona 2018)

  1. 1. Ignasi Marimon-Clos - @ignasi35 Reactive Microsystems scbcn’18
  2. 2. Ignasi Marimon-Clos - @ignasi35 Boring slide decks with lots of boxes and caffeine deprivation don’t go together scbcn’18
  3. 3. @ignasi35
  4. 4. who am i ?
  5. 5. @ignasi35
  6. 6. Agenda
  7. 7. agenda • glossary • monolith, microlith, microsystem
  8. 8. glossary
  9. 9. glossary • Reactive • referred to architecture/systems • responsive, resilient, elastic, message driven. • See https://www.reactivemanifesto.org/ ⚠ This is not a talk about reactive programming (react.js, RxJava, …)
  10. 10. glossary • Message Passing VS Event Driven • MP is the building block • MP is anywhere-to-an-address —> addressable recipient • ED is broadcasting-message —> addressable source • See https://www.reactivemanifesto.org/
  11. 11. monolith, microlith, microsystem
  12. 12. @ignasi35 REST Failure containment Polyglot Eventually Consistent (?) Streaming data 🤔 Spatial decoupling ! (Reactive?) Microliths Monolith
  13. 13. @ignasi35 https://www.oreilly.com/ideas/the-evolution-of-scalable-microservices Failure containment Polyglot Eventually Consistent Streaming data Temporal decoupling ! ¿still a microlith?
  14. 14. • monolith • microliths • reactive microliths Recap • reactive microsystems ???
  15. 15. • refactor a reactive microlith with resilience and scalability in mind microsystems https://www.slideshare.net/jboner/from-microliths-to-microsystems
  16. 16. @ignasi35 REST
  17. 17. @ignasi35 WR WR event- journal tables
  18. 18. @ignasi35 event- journal tables event- journal tables Source of truth Denormalised copies
  19. 19. @ignasi35 event- journal tables event- journal tables
  20. 20. @ignasi35 event- journal projection event- ournal event- journal tables
  21. 21. • CRUD • C*UD model vs *R** model (aka Write Model vs Read Model) • complementary eventlog • eventlog as source of truth (in-transaction C*UD projections) • eventlog as source of truth (eventually consistent projections) Recap
  22. 22. • refactor a reactive microlith with resilience and scalability in mind microsystems https://www.slideshare.net/jboner/from-microliths-to-microsystems
  23. 23. @ignasi35 ???Monolith Recap (application level)
  24. 24. @ignasi35 event- journal projections ???Microlith Recap (service level)
  25. 25. @ignasi35 event- journal projections Let’s continue refactoring … Recap (service level)
  26. 26. Journal Snapshots Write-side projector projections IPC (broker)
  27. 27. Journal Snapshots Write-side projector projections IPC (broker) stateless stateful
  28. 28. • Lagom is a microservices framework promoting the creation of services via contract-first, reactive microsystems implemented as small clusters with a CQRS/ES persistence layer.
  29. 29. Journal Snapshots Write-side projector projections IPC (broker)
  30. 30. Journal Snapshots Write-side projector projections IPC (broker)
  31. 31. @ignasi35 event- journal projection ?Microsystems on my monolyth?
  32. 32. @ignasi35 •Separate stateless from stateful •Move state to the process (not pushed on DB) •Separate reads from writes (use different models) •Denormalise •… (cont’d) Microsystems on my monolyth?
  33. 33. @ignasi35 •… (cont) •Emit state changes •complimentary log •log source of truth •Specialised nodes? •Clustered nodes? Microsystems on my monolyth?
  34. 34. @ignasi35 It’s not about monolith or microservices, it’s about knowing alternatives. Conclusion
  35. 35. Questions?
  36. 36. thank you

×