garden/extract-dont-rewrite.md🌱 seedling
stage
seedling
planted
2026-08-25
tags
[architecture]

seedling— A rough idea. Incomplete, possibly wrong.

Extract what hurts, keep what works

Evolving a monolith by moving selected capabilities out, one reason at a time.

When a monolith gets slow or fragile, the big rewrite is tempting. The alternative is to move out only the capabilities that have a specific reason to leave:

  • performance: it’s a bottleneck;
  • reliability: it needs to be more dependable than it can be where it is;
  • independent deployment: it needs its own release schedule.

Everything without such a reason stays where the domain logic already lives.

Where I did this: Moving parts of a Rails monolith to Go, not all of it (Rails → Go, at JobReady).

Open questions

  • How do you notice when “selected capabilities” is slowly turning into a rewrite after all?
  • What’s the smallest useful seam for the first extraction?

↑↓ select ↵ open esc close