microservices_assignment
microservices_assignment
"
The main goal of the microservices way is to build flexible, scalable, and independently deployable
services.
Each service focuses on a single business capability and can be developed, deployed, and scaled
independently.
This architecture enhances fault isolation, speeds up development, and improves the ability to adopt
new technologies.
It promotes continuous delivery and deployment, making systems more resilient and easier to
maintain.
- Shared Capabilities: These are services or functionalities used across multiple microservices, like
authentication services, logging systems, monitoring tools, and messaging platforms. They are
- Local Capabilities: These are services or functionalities that are specific to a particular
microservice. They are developed and maintained independently, allowing each microservice team
to choose the best tools and designs suited for their specific needs without impacting others.
- Versioned
- Secure
- Documented
- Resilient
Common patterns include RESTful APIs, gRPC, and GraphQL.
There is no strict number, but ideally a release should include a manageable number of bug
Each release should aim for smaller, incremental changes to reduce risk.
Frequent releases with fewer changes are preferred over large, infrequent ones.
- Services communicate using lightweight protocols like HTTP/REST, messaging queues, or gRPC.
- Databases are decentralized, with each service owning its own database.
Simple Diagram:
[Client]
[API Gateway]
/ | \
| | |