Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have a very strong objection to this line of thinking.

Effective use of microservices depends upon a strong, meaningful boundary between the services and that boundary should be business driven, not code driven. As soon as you start dealing in packages of code[1], there’s no longer a meaningful boundary between your services, instead the boundary is completely arbitrary and each service becomes a microservice in name only.

If every microservice knows about the business logic for generating basket prices, whether the code comes from a package or not, you no longer have microservices… you have a lot of monoliths.

I joined a company that did this and it was one of my worst experiences as a software engineer, I would never recommend it.

[1] specifically packages containing business logic. Packages containing functionality for cross-service communication etc. are very reasonable.



> As soon as you start dealing in packages of code[1], there’s no longer a meaningful boundary between your services, instead the boundary is completely arbitrary and each service becomes a microservice in name only.

While this sounds very radical (to me at least), I mostly understand how you've come to this conclusion. Obviously "just one package" is going to lead to further complexities down the line, and perhaps many more packages than that.

Perhaps a dedicated microservice for this piece of business logic would be better, as you suggested.




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

Search: