Skip to content

Instantly share code, notes, and snippets.

@joram
Last active March 16, 2022 04:52
Show Gist options
  • Save joram/eb3f597e8966880e375faf0a48d199d0 to your computer and use it in GitHub Desktop.
Save joram/eb3f597e8966880e375faf0a48d199d0 to your computer and use it in GitHub Desktop.

Microservice Notes

Problems with a Large Codebase

  • cognitive load
  • unintended side effects
  • releasing everything when you changed one thing
  • scaling due to load on one component means you need to scale all components
  • all must use the same framework/libraries/stack

How to mitigate these problems

  • modular code
  • clear boundaries within code for areas of responsibilities

Evolution of a Project (hardening):

Fancy graph showing size of project over product/market fit When to break out a microservice:

Fictitious Future System Diagram

cart before the horse?

Boundaries and Isolation

  • Separating areas of concern
  • Scaling components independently

Types of Boundaries

  • Separate functions
  • Python modules (django apps)
  • Python packages/libraries/repos
  • Microservices

Responsibilities of a Service

  • Data in its area of concern
  • Data stores (databases)
  • Communication path to the service
  • Scaling concerns
  • transparency Logging/Alerting/Monitoring/Metrics (transparency of health of system)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment