1. Write a short note on "Goals for the microservices way.
"
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.
2. What are shared and local capabilities of the platform?
- Shared Capabilities: These are services or functionalities used across multiple microservices, like
authentication services, logging systems, monitoring tools, and messaging platforms. They are
provided centrally to promote consistency and avoid duplication.
- 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.
3. Explain API design for microservices.
API design for microservices ensures clear communication between services.
A well-designed API should be:
- Simple and Consistent
- Versioned
- Secure
- Documented
- Resilient
Common patterns include RESTful APIs, gRPC, and GraphQL.
4. How many bug fixes/features should be included in a single release?
There is no strict number, but ideally a release should include a manageable number of bug
fixes/features that can be easily tested and rolled back if needed.
Each release should aim for smaller, incremental changes to reduce risk.
Frequent releases with fewer changes are preferred over large, infrequent ones.
5. Explain the microservices design model, with a suitable diagram.
Microservices Design Model:
- Each microservice represents a single business function.
- Services communicate using lightweight protocols like HTTP/REST, messaging queues, or gRPC.
- A central API Gateway routes requests to services.
- Services are independently deployable.
- Databases are decentralized, with each service owning its own database.
Simple Diagram:
[Client]
[API Gateway]
/ | \
Service1 Service2 Service3
| | |
DB1 DB2 DB3