Subtracks & Tasks
Schema Migrations
Implement Database Schema Migrations
Database migrations version-control schema changes. Each migration has an `up()` function that applies the change and a `down()` function that reverse...
Implement Backward-Compatible Schema Migrations
A simple "rename column" migration breaks running app instances that still reference the old name. The **expand-contract pattern** avoids this: first ...
Implement Zero-Downtime Database Migrations
A naive `ALTER TABLE ADD COLUMN NOT NULL DEFAULT 'x'` rewrites the entire table and holds an exclusive lock, blocking all reads and writes. Zero-downt...
Implement Data Migrations
Data migrations transform existing data to match a new schema or business rule. Unlike schema migrations, they touch every row. Running them during pe...
Implement Migration Rollback Strategies
When a migration goes wrong in production, you need a rollback plan. Different situations call for different strategies: instant feature flag disables...
Protocol and API Evolution
Implement API Versioning
API versioning lets you evolve your API without breaking existing clients. You support multiple versions simultaneously, warn clients on deprecated on...
Implement Backward-Compatible API Changes
Backward compatibility means old clients continue to work after an API update. The golden rule: only make **additive** changes (new optional fields, n...
Implement Graceful API Degradation
Graceful degradation keeps your API functional even when downstream services are failing. Instead of returning errors, you serve cached data, disable ...
Implement Protocol Evolution
As services evolve, they add new fields and change message schemas. Protocol evolution strategies ensure old services can still read new messages (by ...
Implement Client Migration Strategy
Migrating clients from API v1 to v2 should be gradual and safe. Canary deployments start with a small percentage of traffic; a/b testing routes specif...
Concepts Covered
Prerequisites
It is recommended to complete the previous tracks before starting this one. Concepts build progressively throughout the curriculum.