Composite SLAs

grajee 341 Reputation points


This is a very generic question. The below link talks about SLAs and how to arrive at Composite SLAs. Is multiplying percentages even the right way to arrive @ a Composite SLA for an application?


Azure Analysis Services
Azure Analysis Services
An Azure service that provides an enterprise-grade analytics engine.
428 questions
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. PRADEEPCHEEKATLA-MSFT 73,731 Reputation points Microsoft Employee

    Hello @grajee ,

    When combining SLAs across different service offerings, the resultant SLA is a called a Composite SLA. The resulting composite SLA can provide higher or lower uptime values, depending on your application architecture.

    For example, consider an App Service web app that writes to Azure SQL Database. At the time of this writing, these Azure services have the following SLAs:

    • App Service web apps = 99.95%
    • SQL Database = 99.99%

    What is the maximum downtime you would expect for this application? If either service fails, the whole application fails. The probability of each service failing is independent, so the composite SLA for this application is 99.95% × 99.99% = 99.94%. That's lower than the individual SLAs, which isn't surprising because an application that relies on multiple services has more potential failure points.

    You can improve the composite SLA by creating independent fallback paths. For example, if SQL Database is unavailable, put transactions into a queue to be processed later.


    With this design, the application is still available even if it can't connect to the database. However, it fails if the database and the queue both fail at the same time. The expected percentage of time for a simultaneous failure is 0.0001 × 0.001, so the composite SLA for this combined path is:

    • Database or queue = 1.0 − (0.0001 × 0.001) = 99.99999%

    The total composite SLA is:

    • Web app and (database or queue) = 99.95% × 99.99999% = ~99.95%

    There are tradeoffs to this approach. The application logic is more complex, you are paying for the queue, and you need to consider data consistency issues.

    Reference: Understand service-level agreements

    Hope this helps. Do let us know if you any further queries.


    Do click on "Accept Answer" and Upvote on the post that helps you, this can be beneficial to other community members.

    6 people found this answer helpful.

  2. Gaurav Rahi 6 Reputation points

    How did we come to "0.0001 × 0.001" ?

    1 person found this answer helpful.