chapter seven
7 Designing for robustness
This chapter covers:
- Communicating robustly between microservices
- Letting the calling side take responsibility for robustness in the face of failure
- Rolling back versus rolling forward
- Implementing robust communication
This chapter introduces strategies for making a system of microservices robust in the face of failures. In general, whenever one microservice communicates with another microservice, the communication may fail. In this chapter, you’ll learn about and implement some patterns for dealing with such failures. The strategies are fairly simple, yet they’ll make the overall system much more robust.
Failures and errors
I’ll distinguish between the terms failure and error. A failure happens when something goes wrong in the system and the issue is caused by something outside the system. Some typical sources of failures are as follows: