Juri Strumpflohner
Juri Strumpflohner Juri is a full stack developer and tech lead with a special passion for the web and frontend development. He creates online videos for Egghead.io, writes articles on his blog and for tech magazines, speaks at conferences and holds training workshops. Juri is also a recognized Google Developer Expert in Web Technologies

On Monoliths and Microservices

1 min read

  • Have cross-functional teams
  • vertical decomposition: create vertical slices, being as independent from each other as possible (self-contained systems)
  • vertical services may be even large -> split internally
  • services don’t have a common DB as that would create a tight coupling between them
  • good experiences with “Fat JARs” which can be executed via java -jar <file> (starting an embedded Jetty or something..)
  • REST and Microservices work well together
  • Micro-architecture which deals with the inner workings of a services and is left to the team; macro-architecture is about the interactions between the services
  • crucial points:
    • vertical decomposition
    • RESTful architecture: communication exclusively over REST
    • Shared nothing architecture: no shared state, no HTTP sessions, no central data storage, no shared code. Multiple instance of the same service share the same DB.
    • Data governance: There’s a single “truth”, others have access to the data provider via a REST Api and can eventually copy data to their own storage.
  • Integration over hyperlinks
  • Data replication: services poll atom feeds of the responsible vertical product to regularly get data updates and keep in their own storage (they’re not using data queues)
    • temporary inconsistencies at the cost of availability of services
    • could be avoided to replicate by calling remote services directly -> problem of delays and slowdowns of the entire system though

Questions? Thoughts? Hit me up on Twitter
comments powered by Disqus