4. blogs.karthikeyanvk.in
Enter Text
Organization Alignment
• Microservices allows to align our architecture our
organization, by helping us minimizing the number of
people working on one codebase
• Smaller codebases tend to be more productive.
• Support Devops
9. blogs.karthikeyanvk.in
Enter Text
How to define being small ?
• Smaller the service, the more you maximize the
benefits and downsides of Microservices architecture.
• When you get smaller, the benefits around
interdependence increase
• When you get too smaller, the complexity emerges
from having more and more moving parts
14. blogs.karthikeyanvk.in
Enter Text
What is Bounded Context?
• A Domain consists of multiple bounded contexts, and
residing within each are models that do not need to
be communicated outside as well as things that are
shared externally with other bounded contexts.
15. blogs.karthikeyanvk.in
Enter Text
What is Bounded Context?
• Each bounded context has an explicit interface, where
it decides what models to share with other contexts.
16. blogs.karthikeyanvk.in
Enter Text
Business Capabilities
• Don’t think in terms of data that is shared
• Think in terms of bounded context capabilities that is
provided in the rest of the domain.
• Communication in Terms of Business Concepts
18. blogs.karthikeyanvk.in
Enter Text
Conway's law and System Design
• Any organization that designs a system (defined more broadly
here than just information systems) will inevitably produce a
design whose structure is a copy of the organization’s
communication structure.
Resilience – One part of the service fails and whole application fails, so running application in spite of failures
Scaling – One part of application needs more resources and scalling is easy when Microservices
Removing Rewriting Barrier – Technology can be changed easily if it is small for specific needs
Composability - a system design principle that deals with the inter-relationships of components. essential features - self-contained,Stateless
Composability - a system design principle that deals with the inter-relationships of components. essential features - self-contained, Stateless
Gather together those things that change for the same reason, and separate those things that change for different reasons
Gather together those things that change for the same reason, and separate those things that change for different reasons
learn new runtimes, technologies, or frameworks
In Search of Excellence - Tom Peters and Robert H. Waterman, Jr.. Published in 1982
Composability - a system design principle that deals with the inter-relationships of components. essential features - self-contained,Stateless
Warehouse, finance, sales, front desk
These capabilities may require the interchange of information — shared models — but I have seen too often that thinking about data leads to anemic, CRUD-based (create, read, update, delete) services. So ask first “What does this context do?”, and then “So what data does it need to do that?” When modeled as services, these capabilities become the key operations that will be exposed over the wire to other collaborators.
Communication in Terms of Business Concepts - It’s also important to think of the communication between these microservices in terms of the same business concepts.
Technology Agnostic - Avoiding integration technology that dictates what technology stacks we can use to implement our Microservices. Ready shift to java or databases based on requirement
Organizational issues to consider as well
Explain moore’s law
two-pizza teams
owning the whole lifecycle of their services
Explain how about three tier architecture and Microservices fits here wrt to teams
Domain entities – Data oriented –
Collection of capabilities
Bounded context
Think about what can be shared in the model
Exposing the hidden is easier than hiding the exposed properties.
ARM Template
Autonomy
Owner operator model
Own the microservices
Internal Open source – submit PR, still proper gate keeper.
No service bus – keeping it dumb
Proper technical boundary
GOD Class
Use events
Talk in queue
GOD Class
Use events
Talk in queue
Swagger
Consumer driven contracts
Define api standards
API Documentation
API Gateway – Service Discovery
Microservices are not reliable by default
Kubernetes helps
Polly
No single point of failure
Search for product but cannot order atleast
Strangler pattern
Circuit breaker