5 ms·
> Every service --- and there are dozens... Most startups that I see trying to go with microservices too early do so while keeping a shared database between th
by solatic 4y ago
> Every service --- and there are dozens...
Most startups that I see trying to go with microservices too early do so while keeping a shared database between the services, so they're not really microservices, but a distributed monolith. This turns into a massive, massive pain.
Doing microservices well means building out templates for CI/CD pipelines, templates for observability, figuring out how best to share (or not share) common credentials like third-party API keys, setting up a service mesh, setting up services like Backstage and Buf... which inevitably requires hiring dedicated engineers at enormous cost.
If you can set up a monolith, why would you switch to microservices? So that you can have a smaller container image and faster autoscaling? So the developers on the second and third teams you hire can wait a little less time for CI tests to run?
It's a pretty big mistake to adopt microservices too early.
- kdhfkdbjdh 4y agoor too late. you just described all big corp attempts at giving aws money. keep the database and all the bugs and leaky abstractions and spaghetti code... but split and duplicate code in a dozen repos... done. microservices.
- tptacek 4y agoSure, but I'm not thinking of small startups, but rather large ones like Doordash, Airbnb, Box, Square, Stripe; these places legitimately have lots of services, complex coupling patterns, and a need for some kind of indirection and dynamic placement to enable teams to get things done without coordinating every single PR. 37signals presumably doesn't have any of those problems. They should be using K8s. In the previous thread, I suggested that I'd consider Nomad if I were them, but really, they don't need Nomad either. They need a yaml file mapping containers to hosts, and some tooling to do smooth deploys and to hook up a relatively static service discovery map. Which: that's what they built.
- deterministic 4y agoWhat on earth makes you think that the business domain of Airbnb/Doordash is any more complex than what 37signals is working on? Almost all complexity in software is created by developers. 37signals seems to be one of the few companies that really understand this.
- dgroshev 4y agoYou are talking about a handful of unicorns, not just large startups, and even then only a subset of them — Shopify with their widely successful monolith comes to mind. By definition their requirements in their current unicorn state can't be the default. Yet we collectively behave as they are and everyone needs dynamic scheduling (and the rest of the kitchen sink).
- tptacek 4y agoHey, we're on the same page about thinking critically about dynamic scheduling. :)
- crabmusket 4y agoNitpick: it may be helpful to not use the term "startups" when you mean companies like Doordash, Airbnb, Stripe etc. Those companies _were_ startups... a very long time ago. Same with 37signals. This advice offered in the hope that it may improve communication!