[1] Notes on "Building Microservices"

Currently reading Building Microservices: Designing Fine-Grained Systems and trying to curate notes for myself and some greater good 😉. I'm trying to approach this in a minimalistic way keeping the essence of chapters intact.
Introduction
Small, and Focused on Doing One Thing Well
  • Cohesion - To have related code grouped together.
  • Enforcing SRP by Uncle BOB
    • Gather together those things that change for the same reason, and separate those things that change for different reasons.
    • Key rules
      • Small enough and no smaller.
      • Is it codebase too big to be managed by a small team?
  • Autonomous : Freedom to govern itself
  • Golden rule: Can you make a change to a service and deploy it by itself without changing anything else?
  • Decoupling is an important aspect
    • Modelling the service right
    • Choosing right good, decoupled APIs
  • Key benefits
    Tech Heterogenity
  • Performance improvement can be done easily by consuming a new stack
  • Adopting new tech is easy - Start with a service with limited potential impact.
  • Resilience : Capacity to recover quickly
  • Key : Bulkheads (Barriers between services)
  • Service boundaries are obvious bulkheads
  • In monolithic, everthing stops at once. We run it on multiple machines to handle this scenario.
  • In microservices, building a system that handles total of failure of one service( and degrade functionality accordingly).
  • Scalability
  • Scaling is easier for micro than monolithic service. One aspect of complete service can be scaled individually.
  • On-demand provisioning (like by AWS) on pieces that need it.
  • Easy of deployment
  • Key factors
    • Delta in subsequent releases
    • Avoiding High Risk, Large Impact deployments
  • Microservices mitigates above factors' bad consequences
  • Organizational Alignment
  • Working on any one codebase to hit the sweet spot of team size and productivity.
  • Composability
  • Reuse of existing functionality
  • Web, native application, mobile web, tablet app, or wearable device
  • Replacibility optimization
  • Scary Legacy code - vital and risky to replace
  • Small service - Low cost to replace
  • 32

    This website collects cookies to deliver better user experience

    [1] Notes on "Building Microservices"