Incident · Senior
VTEX Jul 12, 2023: circuit breakers that don't close on their own
The resilience mechanism itself extended the incident: the database was fixed at 21:15 UTC, but the breakers stayed open until 23:03.
Short answer
The resilience mechanism itself extended the incident: the database was fixed at 21:15 UTC, but the breakers stayed open until 23:03. VTEX's public post-mortem is the source of this case. On July 12, 2023, at 20:29 UTC, one of the company's replicated, high-availability database systems suffered severe service degradation and did not recover automatically.
01 · CONTEXT
A platform that depends on a replicated database
VTEX's public post-mortem is the source of this case. On July 12, 2023, at 20:29 UTC, one of the company's replicated, high-availability database systems suffered severe service degradation and did not recover automatically. The described effect was intermittent errors and high latency across the overall experience, with a partial platform outage.
The sales flow, product indexing, and the admin environment were severely affected.
Merchants and shoppers reach the platform through the services.
The services query a replicated, high-availability database, which is a shared dependency.
02 · THE TIMELINE
From the degraded database to recovery
According to the post-mortem, at 20:29 UTC the database degraded and did not recover automatically. At 21:15 UTC the initial problem was remediated manually. At 22:00 UTC the response team was still investigating the cascading effects of the failure and applying remediations manually. At 23:03 UTC VTEX validated that the remediation actions had been effective, with stable recovery.
At 20:29 UTC the replicated database suffers severe service degradation and does not recover automatically.
For users, the effect is intermittent errors and high latency, with a partial platform outage.
At 21:15 UTC the initial problem is remediated manually.
Several service circuit breakers opened and did not close automatically after the initial problem was resolved.
At 22:00 UTC the team was still investigating the cascading effects and applying remediations manually.
At 23:03 UTC VTEX validated that the remediation actions were effective, with stable recovery.
03 · THE BREAKER
The protection that does not come back on its own
According to the post-mortem, circuit breakers exist to avoid complete unavailability and, as a side effect, a subset of the platform kept operating.
| Aspecto | What the post-mortem records |
|---|---|
| Purpose | Avoid complete unavailability |
| Side effect | A subset of the platform kept operating |
| Observed behavior | Several service breakers opened and did not close automatically after the initial problem was resolved |
| Consequence | The incident extended for some customers |
The degraded replicated database is at the origin of the impact described in the post-mortem.
The sales flow was severely affected.
Product indexing and the admin environment were also severely affected.
04 · THE ACTIONS
What VTEX committed to changing
The post-mortem lists actions to avoid similar incidents. Among them are reassessing the size of the failure domain associated with the replicated, high-availability database system, investigating and fixing the cause of the severe service degradation in the database system, and investigating and fixing the bug in the circuit breakers that did not close properly after the database problem was resolved.
05 · IN THE INTERVIEW
Questions to bring to your design
When proposing circuit breakers, ask who closes the breaker: does it test the dependency automatically and periodically, or does it depend on a manual action? Also ask how you would know, through monitoramento and alerts, that a breaker is still open after the dependency came back. Finally, ask how many customers and functions share the same dependency, because that defines the reach of a failure in the disponibilidade.
Frequently asked questions
What is VTEX Jul 12, 2023: circuit breakers that don't close on their own?
The resilience mechanism itself extended the incident: the database was fixed at 21:15 UTC, but the breakers stayed open until 23:03.
What does the VTEX Jul 12, 2023: circuit breakers that don't close on their own design cover?
It is organized in these sections: A platform that depends on a replicated database, From the degraded database to recovery, The protection that does not come back on its own, What VTEX committed to changing, and Questions to bring to your design.
How long is VTEX Jul 12, 2023: circuit breakers that don't close on their own and what level is it?
It takes about 14 minutes to read and is rated Senior level.
Now design it yourself
Run this case as an interview in the System Design school: you make the decisions, the tutor challenges them and you see how your design scores.