Notes from Microservices - Oreilly, chapter 1

What are microservices?

Domain driven design Eric evans

Continuous deployment

Hexagonal architecture Alistair Cockburn’s

Virtualization platforms

Small teams

Systems at scale

Small and focused on doing one thing well

Robert C Martin Single responsibility principle. Keep things that change for the same reason together and separate those things that change for different reasons.

Service boundaries align with business boundaries

How small?

Autonomous

Communication between services via network calls.

Avoid tight coupling and allow separation of services

Key benefits

Technology heterogeneity

Netflix and Twitter use JVM

Resilience

Service boundary becomes a bulkhead - problem is isolated it’s not cascaded.

Scaling

Scale only the required services - cost saving.

Gilt online fasion retailer embraces microservices.

Ease of deployment

Smaller change, easy identification of issues and rollback.

Organizational alignment

Smaller teams

Composability

Optimizing for Replaceability

Rewrite services.

What about Service-Oriented Architecture

SOA not practical

Other decompositional techniques

Shared libraries

No technological heterogeneity.

Different parts cannot be scaled.

Reduced ability to deploy in isolation.

Modules

OSGI - Open source gateway initiative

Java doesn’t have modules?!

Erland has modules

Modular decomposition within process boundary doesn’t happen in practice.