jargon

Comparison

Lava flowvsStrangler fig

Lava flow

the old implementation is still there behind a flag nobody has turned on since the migration two years ago.

Dead or obsolete code that has hardened into the codebase because nobody is confident enough to remove it. It grows out of unfinished migrations and abandoned experiments, and it costs on every read, every search and every dependency upgrade. The cure is deletion plus version control, and the reason it does not happen is that nobody is rewarded for it.

Full entry →

Strangler fig

you put a router in front and moved one endpoint at a time until the old service had no traffic left.

Replacing a system incrementally by intercepting its traffic and moving one piece of functionality at a time to the new implementation, until the old one can be deleted. Named after the vine that grows around a tree and remains when the tree is gone. It is the default alternative to a rewrite because every step is small, reversible and independently valuable, and because the migration can be paused indefinitely without leaving anything half-built.

Full entry →

Related comparisons