3 ms·
I honestly believe that doing small services is long term better approach than a monolith. But as you I strongly believe it's not where you want to start. But
by danielovichdk 3y ago
I honestly believe that doing small services is long term better approach than a monolith. But as you I strongly believe it's not where you want to start.
But I do not agree on is more time consuming than the other. It's just time spent on different matters. For the sake of money spent, I have not seen any data on how a monolith outperforms small services. For maintaining the platform, I think 25% sounds a bit high.
Money spent should be measured in many different aspects. One is definitely productivity. And I have seen more stale monoliths than I have seen stale small services. Whether it's better or not is not up to me to judge. I just know what I prefer.
Having been exposed to small service architecture where it has been working really well and very poor, there are few things that stand out.
- Conquer and divide (your monolith over time).
- Responsibility boundaries are easier to cope with for developers in a small service since they often don't have generic and yagni abstractions.
- Less code to comprehend for a small service and the cognitive load decreases.
- Build time, test time, deployment time.
- Should lean up against a direct business measurement and value.
- Group chatting services into one.
I have yet to see a monolith that over time is not really deteriorating, but I haven't worked with SO or Shopify. We could also argue that Cobol and Fortran is still of good use but time has also changed leaving that style of system development exposed as old and dusty.
But like any software development occurrence, it takes responsibility, mandate and proper leadership to get things done in a decent manner. So if you start by making 3 services that has to chat to find a user profile you probably don't know what you're doing. And 25 people (the Threads image) is not a small team IMO.
Good luck