There are some characteristics each microservice needs to have to function properly, those are:
Componentization via Services: Components need to be broken up into services, so that they can be used as libraries.
Organized around Business Capabilities: Split the people into team so that they all can work with teams on specific business capabilities.
Products not Projects: Software has to be meaningful, it needs to provide the client with a useful product to make his life easier, instead of just a bunch of code.
Smart endpoints and dumb pipes: Endpoints should do all the heavy lifting when it comes to the computations, so the pipes only pass informatión and could be less cluttered.
Decentralized Governance: Developers need to have the skill to learn any language or technology the product needs, they should adapt to the basic idea, instead of adapting the idea to the language or the technology they know best.
Decentralized Data Management: Each microservice should use it’s own database, or different instances of the same database.
Infrastructure automation: automate all things, including testing and deployment.
Design for failure: If an external service fails, the current services should be able to handle all kinds of errors
Evolutionary Design: The code should be design in such a way that could be easy to evolve depending on the business needs.
No comments:
Post a Comment