In a distributed system, it is very important to ensure that you know how to handle failures. Java EE applications being more and more connected to other systems, they face this challenge more and more, so it is important to know how you will deal with failover when it happens.
The first meaning of failover is, indeed, to fail over. It can be rephrased as the capability to switch to a backup system when the primary system fails. In Java EE applications, there are lots of places where this can be set up, but they are all related to external systems:
- Databases: If a database connection fails, how to still handle the requests?
- JMS: If a broker fails, what to do?
- Other network API (such as SOAP or REST API): If the remote server is down, what to do?
- WebSocket: If the target server closes the connection or fails, what to do?
In general, each time your application relies...