Hacker News new | ask | show | jobs
by blakehaswell 1551 days ago
To clarify, are you saying up to two-dozen services for a development team with ~12 developers on it?
2 comments

Above all I'm saying that sentences like "microservices are better", "monoliths are better", "42 services are the best" are all stupid without context.

What your business does, how many people you have 3 or 10k, what kind of roles and seniority you have, how long you're in the project - 3 months in or 10 years in, how crystalized architecture is, at what scale you operate, how does performance landscape looks like, what kind of pre-deployment quality assurance policies are dictated by the business, are offline upgrades allowed or we're operating in 24h, which direction system is evolving, where are gaps (scalability, quality...) etc are all necessary to determine correct answer.

Building website for local tennis club will require different approaches than developing high frequency trading exchange and both will be different from approaches for system to show 1bn people one advert or the other.

Seeing world as hotdog and not-hotdog (microservices vs monoliths) makes infantile conversations. There is nothing inherently wrong with microservices, monoliths or any of approaches to manage complexity ie:

- refactoring code to a shared functions

- encapsulating into classes or a typed object

- encapsulating into a modules

- simply arranging code into better directory structures, flattening, naming things better, changing cross-sections ie. by behavior instead of physical-ish classes and objects

- extracting code to packages/libraries inside monorepo or its own repository ie. open sourcing non-business specific, generic projects or rely on 3rd party package/library

- extracting into dedicated threads, processes, actors/supervisors etc.

- extracting to service in monorepo or dedicated repository or creating internal team to black box it and communicate via api specs or use 3rd party service

...bonus points for:

- removing code, deleting services, removing nonsensical layers of complexity, simplifying, unifying etc.

etc

I don't know what the op intended, but services can be deployed in process inside one monolith.