Live data from Hacker News

Stripe – Outage postmortem

support.stripe.com

1–10 of 132 posts

Re: Stripe – Outage postmortem

#2
>> the database operator didn’t have a way to check whether the index had recently been used for a query.

Appreciate the disclosure. Stripe engineers have been so helpful to me and my business. Keep up the good work.

Re: Stripe – Outage postmortem

#3
Nicely done. Good job avoiding retrospectively blaming people and instead focusing on future system improvements.

(For those wondering why this is important, Sidney Dekker's "Field Guide to Understanding Human Error" is a mindblowing book.)

Re: Stripe – Outage postmortem

#4
post #3

Nicely done. Good job avoiding retrospectively blaming people and instead focusing on future system improvements. (For those wondering why this is important, Sidney Dekker's "Field Guide to Understanding Human Error" is a mindblowing book.)

[deleted]

Re: Stripe – Outage postmortem

#5
This is one of the best incident reports I think I've ever read, detailed, honest and without recrimination.

I'm reminded of something I read in a book a while back about aviation disasters "It's not the first problem that kills you, it's the second".

In this post the described system for change management is at least as good as any I've seen in production and yet a series of small problems got out of hand quickly.

Re: Stripe – Outage postmortem

#7
I appreciate the post-mortem and, of course, we've all been there. I have to say, though, that the cause is a little surprising. That DDL needs to be executed sequentially is pretty basic and known by, I'm sure, everyone in the engineering and operations organizations at Stipe. It surprises me that an engineering group that is obviously so clever and competent would come up with a process that lost track of the required execution order of two pieces of DDL. If process (like architecture) reflects organization, what does this mean about the organization that came up with this process? It's not a sloppy exactly. Is it overly-specialized? It reminds me of that despair.com poster "Meetings: none of us is as dumb as all of us" in that a process was invented that makes the group function below the competence level of any given member of the group.

Re: Stripe – Outage postmortem

#8
> At 00:08 UTC, our on-call engineer had been paged and had responded. At 00:10 UTC, we linked the API degradation to the removal of the index.

I'm sure stripe has very good metrics of all their systems, nonetheless that's some rockstar level debugging skills.

Re: Stripe – Outage postmortem

#9
post #8

> At 00:08 UTC, our on-call engineer had been paged and had responded. At 00:10 UTC, we linked the API degradation to the removal of the index. I'm sure stripe has very good metrics of all their systems, nonetheless that's some rockstar level debugging skills.

Well the DB admin had just removed the index a few minutes before, and immediately the API times spiked. When you remove an index there is exactly one risk --slowdown-- and that's precisely what the admin noticed.

Re: Stripe – Outage postmortem

#10
For schema/index changes I prefer migrations. These should be committed along side the code, tested, and promoted through environments. This largely prevents dependency issues because the migrations are ordered.

Devops is like 80% dependency management. It's painful initially but you have to crack down on manual changes to production - all production changes should be defined in code, committed to git, tested, and flow through non-prod environments first. (just had an outage yesterday that was essentially because I failed to do this)

Post reply on HN