đź“—

Building Microservices

notion image
 
 

What are Microservices?

independently releaseble services
Microservices avoid the use of a shared databases in most circumstance. Instead, each microservice encapsulate it's own database where required.
Microservice embrace the concept of information hiding. (expose only what is necessary)
Goal is to enable independent releasability of functionality

Key concepts

Independent deployability
Modeled around a business domain
Owning there own state
Size
Flexibility
Alignement of architecture and organisation

The monoliths

Microservice is the oposite of a monolith: a monolith is when all functionality in a system must be deployed together.
The single process monolith
The modular monolith
The distributed monolith
Monoliths and delivery contention
Monolith advantage

Enabling technology

Log aggregation and distributed tracing
Container and kubernetes
Streaming
Public Cloud and serverless

Advantage of microservices

Technology heterogenity
Robustness
Scaling
Ease of deployment
Organizational Alignement
Composability

Microservices pain points

Developer experience
Technology overload
costs
Reporting
Monitoring and trouble shooting
Security
Testing
Latency
Data consistency

Should I use microservice?

Whom they might not work for
Where they work well
 
 
>
Hi! I'm Damien Henry digital counterpart. Feel free to ask me anything about my work, projects, or thoughts on AI and tech.