Microservices Development
Dr. Hussain CCD PMP
25 yrs of Industry exp, CEO, Assistant CEO, SAP Certified Finance & HR, Principal consultant
Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities. The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack.
Microservices are not a silver bullet
The microservice architecture is not a silver bullet. It has several drawbacks. Moreover, when using this architecture there are numerous issues that you must address. The microservice architecture pattern language is a collection of patterns for applying the microservice architecture. It has two goals:
- The pattern language enables you to decide whether microservices are a good fit for your application.
- The pattern language enables you to use the microservice architecture successfully.
Where to start?
A good starting point is the Monolithic Architecture pattern, which is the traditional architectural style that is still a good choice for many applications. It does, however, have numerous limitations and issues and so a better choice for large/complex applications is the Microservice architecture pattern.
Example microservices applications
Want to see an example? Check out Chris Richardson's Money Transfer and Kanban board examples.See code
How to apply the pattern language
An article that describes how develop a microservice architecture by applying the patternsLearn more
Microservices adoption:
Who is using microservices?
Many companies are either using microservices or considering using them. Read the case studies...Learn more
Training video from O'Reilly: event-driven microservices
Learn about patterns for developing, deploying and refactoring microservices.Learn more
Revised data patternsnew
Check out the changes to the data patternsLearn more
The patterns
Core patterns
Decomposition
Deployment patterns
- Multiple service instances per host
- Service instance per host
- Service instance per VM
- Service instance per Container
- Serverless deployment
- Service deployment platform
Cross cutting concerns
Communication style
External API
Service discovery
- Client-side discovery
- Server-side discovery
- Service registry
- Self registration
- 3rd party registration
Reliability
Data management
- Database per Service
- Shared database
- Saganew
- API Compositionnew
- CQRS
- Event sourcing
- Transaction log tailing
- Database triggers
- Application events
Security
Testing
Observability
- Log aggregation
- Application metrics
- Audit logging
- Distributed tracing
- Exception tracking
- Health check API
- Log deployments and changesnew
UI patterns