Two long-standing, well-known and appreciated Azure core services, Azure Service Bus and Azure Event Hubs, just released a preview of an upcoming generally available Geo-disaster recovery feature. With the help of this feature, no client needs to manage Geo-disaster recovery scenarios anymore via code, but can instead rely on the services doing the metadata synchronization between two independent namespaces. At this time, data replication is not yet supported and will be added at a later point in time (post-general availability).
Note that there is a significant difference between a disaster and an outage. A disaster is typically causing a full or partial data center outage, for example, a fire, flood or earthquake. An outage is usually caused by more transient issues and are very short lived. Disasters can take hours and sometimes days to resolve, whereas outages are more in the timeframe of minutes.
Currently, both services require that you have a separate monitoring process to automatically recover from disasters. This means that you would need to write a small application to monitor your namespace, and for example, connects every 1-10 minutes. If the connection fails repeatedly the application can trigger a failover. It's also worth noting, that it is possible to have multiple independent monitoring processes. Please find more information in the articles below.
To set up disaster recovery, select two namespaces in independent regions, for example, US North Central and US South Central, and define a primary and a secondary namespace, then create a pairing between them. In case of a disaster, trigger the failover.
- To learn more about the REST API for Service Bus, including code samples, please visit documentation.
- To learn more about the REST API for Event Hubs, including code samples, please visit documentation.
- Important information about the difference between a disaster and an outage can also be found in documentation.
If you have feedback, please let us know!