“Someday never comes,” I wrote after a call about a system nobody wanted to rewrite yet.

Rapchat's architecture document made the problem concrete. The application used a Node and Express backend, a Vue front end, and MongoDB. The servers ran on Google Cloud. Files went to Azure blob storage. Nginx sat in front. The architecture split production, development, administration, web, batch, and deployment work across several services.

MongoDB used a primary and multiple secondary nodes for continuity and recovery.

It was a real system with real traffic and a lot of pieces that could not simply stop while somebody drew a cleaner replacement.

After our call, one of the Rapchat leaders said the current focus was growth with what they already had. The team knew some larger changes were probably ahead. They had discussed moving away from MongoDB, rewriting the backend, and reducing dependencies. Those projects looked too large for the current team and too far from the immediate work of bringing in more users.

I agreed that they could do a lot with the existing system. I also thought they could begin moving toward the architecture they wanted without waiting for a single giant rewrite.

Then I reached for Creedence: “someday never comes.”

I translated my own joke with more jokes. Waiting would not make the future work easier. More growth would bring more problems. The email included both the technical point and “mo money mo problems,” because apparently one song title was not enough.

There was no migration plan attached. I had reviewed the system, joined a call, and sent a short note back. The architecture still had to run the next morning.

Archive