When Should I Fail Over? Using Observability to Answer Critical Questions in the War Room
Building observability into your application is critical - not only from systems perspective but also from a business perspective. Learn how you can build observability and use it for making failover decisions.

deviceprotectionorders
table is a global table, DynamoDB automatically replicates it to the standby Region (#5).

health
to the API Gateway in both the Regions. The Synthetics canary in each Region invokes the /health
API endpoint in each respective Region (shown with circle 'A' in "Figure 2. Application architecture with observability components"), which in turn triggers a Lambda function called ‘HealthCheck’ ('B' in Figure 2). This function queries a single dummy record from the DynamoDB table ('C' in Figure 2). If successful, it pushes a custom metrics to CloudWatch shown as 'D' in Figure 2. If Synthetic canary is successful, that means all layers of the application are working as expected./health
instead of your business endpoint /deviceprotectionorder
. That's a tradeoff I have chosen in favor of keeping health check logic and business logic separate. If you want your health check to hit your business endpoint, you can add extra logic like a query param, request header, etc. by which you can separate out the health check metrics so that they don't skew your business metrics.






Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.