Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I had a dilemma at my longest job.

We had a monolith (but not monorepo) that had big Conway’s Law problems. We wanted to start making microservices. We had a couple sidecars that I either wrote or did reconstructive surgery on, but the few microservices we had were dumb. One created head-of-line problems for fanout, asking a question that could have been a Consul long poll. The other really could have been run entirely in Bamboo if we hadn’t cheaped out on agent size.

I killed the former, but the latter used a larger slice of all of our modules than all of the sidecars combined. It was also an offline process, writing into dark content in S3. So I could break it for an hour without anyone noticing, and in some environments I could go a full work day without rolling it back as long as I watched for production alerts (and I was on the team that did).

If I got rid of it then all library and runtime upgrades would get harder, though half the team ignored my advice anyway and then we had occasional P1s or 2s because of it.

My experience, there and elsewhere, is that offline logic of any flavor at least pays for itself in terms of code-build-test cycles, fairly quickly and self-evidently. But some people think it sounds counterintuitive and push people to “go fast” without it. Which only happens if they double down and cut more corners.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: