Engineering Decisions · Senior · Question 12 of 14

You must rename a column in a 500M-row table. The app has rolling deploys, so old and new versions run together, and downtime isn't allowed. What's the plan?

Show the answer

Correct answer: Expand and contract across several releases

Explanation

Adding a new column, writing to both and dropping the old one later keeps every running version working. A single rename fits a small app with one instance, but during a rolling deploy old code would break on the missing column. A maintenance window fits internal tools or rare, huge changes, and it's ruled out by the no-downtime requirement.

Further reading

Problem with a question

Engineering Decisions · Senior · question 12

Test yourself

Take the Engineering Decisions · Senior quiz: questions and options are shuffled, and you get a review of your mistakes at the end.

Take this quiz