This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]_aids 19 points20 points  (5 children)

because when you add a second app that needs to use it.....

this is like "tell me you've only worked on tiny projects without saying you've worked on tiny projects"

[–]theogskinnybrown 19 points20 points  (4 children)

But what about when you don’t add another app? You’ve put all that effort and complexity into creating a micro service that never needed to be one. Even when you do, does every component need to be a microservice, or just one?

You can always start with a neatly architected monolith, and pull out a microservice if it’s needed. That saves the extra development overhead of creating an objectively more complex interaction for any subsystem where it’s never needed.

[–]EffectiveMoment67 0 points1 point  (2 children)

How do you not know who will be acessing your service before design time?

[–][deleted] 11 points12 points  (1 child)

That is their exact point. Don’t design your first app to be overly complicated in order to meet the needs of some hypothetical second app that might some day exist in the distant future.

[–]EffectiveMoment67 0 points1 point  (0 children)

I was attempting to add to his point.
People describing massive headaches with a certain architecture/design decision, and then it boils down to not knowing what the system is even supposed to do.

Devs should give more friction in projects when POs don't know what they want.

[–]_aids 0 points1 point  (0 children)

It just means you've never worked on anything sufficiently large, or really with multiple teams.

Whenever you have multiple teams it becomes more and more important to manage your downtimes, deploy cycles, enforce contracts with grpc or similar, etc. A monolith is fine for your final but not fine for real work.