Spring Cloud Devnexus Notes

Monolithic vs Microservices

  • Easy/Hard vs Simple/Complex
  • Monolithic
    • Complex / Easy
    • Language / Framework modularity
    • Fewer scaling vectors
    • Long-term commitment to tech stack
    • coupled changes make harder deploys
    • hard to scale dev
  • Microservice
    • Simple / Hard
    • for continuous delivery
    • 12 factor apps
    • diversity of clients (mobile, desktop, devices)
    • modularity based on services
    • uncoupled changes enable frequent deploys
    • more scaling vectors
    • dev friendly
    • easier to scale dev
    • no long term commitment to tech stack

Microservices with Spring Boot

  • partition strategies
    • Noun (product info service)
    • Verb (shipping service)
    • Single Responsibility Principle
    • Bounded Context
  • Polyglot persistence
  • Unix pipes and filters
  • Choreography vs Orchestration

No Man (Microservice) is an Island

  • No free lunch
    • Ops overhead
    • Substantial Devops Skills required
    • Implicit interfaces
    • Duplication of effort
    • Distributed System complexity
    • Asynchronicity is difficult
    • Testability chalenges

Spring CLI Support http command is from httpie.org

[Read More]