What does it mean that microservices are network enabled?
Give a brief summary of what microservices is…
A type of software architectue in which the software is split into services, each of which are network enabled. Each microservice should provide a different functionality.
Talk about the ideal complexity and size of each microservice…
Each service should be small, but can be functionally complex.
If a service starts increasing in size, what actions should be taken?
The microservice should be split into smaller sub-services.
What does it mean that microservices are message enabled?
What protocol is most commonly used for microservices? And which style?
Protocol - HTTP
Style - Representational State Transfer (REST).
What are the 4 resources that mciroservices use? Briefly define each…
Talk about the effect that a Microservices architecture has on testing. Draw comparisons to Monolithic testing.
Con: (Distributed Testing and Debuggin) Testing can be tricker regarding performing tests and locating bugs due having to test all separate services individually. As opposed to Monolithic, where there is one testing location and one debugging location.
Pro: Modular services prevents the central point of failure risks that a monolithic system has. Debugging, smaller and simpler services should be easier with less risks.
What type of Scaling occurs when using Microservices architecture?
What type of database do microservice systems often use? What is a pro and con of this?
Distributed databases.
Pros:
- Quicker due to data locality to the microservice it provides.
- Scalable
Cons:
- Can’t monitor data consistency well
- May incur data duplication across databased.
- Can lead to non-uniformity in data.
What are the names of the 2 distributed database transactions?
Explain the Two-phase commit transaction…
Pros:
→ Ensures consistency.
→ Ensures data uniformity.
Cons:
→ Each database is locked waiting for voting.
Explain Saga transactions…
Success → All databases in sequence commit successfully.
Failure → At least one database in the sequence aborts, resulting in a rollback to previous states for all databases in the sequence.