Hacker News new | past | comments | ask | show | jobs | submit login

shopify's problem can be fixed without microservices by writing modular code. The monolith should be structured as a set of libraries. I find it so strange, the way these microservice debates always assume that any codebase running in a single process is necessarily spaghetti-structured. The microservice architecture seems to mainly function as a way to impose discipline on programmers who lack self-discipline.





That's the approach described in this article: https://medium.com/@dan_manges/the-modular-monolith-rails-ar...

Instead of an app directory you put all your code into gems and engines.

Shopify has taken the approach of siloing their monolith into smaller rails apps which is a similar approach to refactoring into rails engines.


    The microservice architecture seems to mainly function as a way
    to impose discipline on programmers who lack self-discipline.
Sadly we're discovering that while that's the goal, the actual result is frequently Distributed Spaghetti.

Oh dear, it seems I've lost my poor meatball.

Well seeing as Italian-Cuisine-Driven Development is so crushingly prevelant, it seems most average developers within one standard deviation of ability on the normal distribution lack either discipline, know-how, or time. Or any combination of the three. So it's hard for software not to be spaghetti unfortunately. That's the natural state it wants to be in over time.

Microservices won't change any of those variables. Nor will it change the normal distribution of them. So one thing is for sure. No matter what the architecture of paradigm is being used, we can on average expect average quality software. Most people on average don't gush about how amazingly clean their architecture is or how well defined their bounded contexts are. They tend to talk about spaghetti. I infer from that that on average it's spaghetti and theres a chance it might not be.




Applications are open for YC Summer 2019

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

Search: