UnrealSPh
UnrealSPh
CC#
Created by UnrealSPh on 6/20/2024 in #help
Do we really need microservices in order to scale out an application horizontally?
Hey there, Last several years I've been thinking about microservice architecture and all costs we have to pay in order to develop, test, deploy a service. Let's pretend that we all write brilliant code and there is no entire problem with an architecture and our folks from business don't change their mind 5 times per week about how things should work. But I still see a lot of issues with microservices: If you have a feature and that feature is touching different services, congrats you need to write e2e tests. You need to somehow run e2e tests and sometimes you will not be able to do it from locally. You still can "mock" a service, but what if you need to mock one specific part of a service, not entire one and the developers have not designed it. Of course we can try to setup CI/CD pipelines and spend some effort to make a good testing pipeline, but it will decrease individual performance dramatically. If you write a new feature for service A it is not enough to run unit tests and release the feature. You need to wait until your Testing pipeline will finish tests and etc. And i'm not saying that "microservices are evil". I'm just trying to understand why this approach is so popular (even in dotnet world) if in most of scenarios there is only 1 thing we want to achieve: opportunity to scale an app horizontally. As far as I know there is an Actor Model (aka.net or orleans) you can use for your application. You may write an monolith architecture, but because of actors model you can scale workers and etc. But in the same time you have your whole system in one place, you can write functional tests instead of e2e and save hundred hours. So guys, I'd like to understand if someone had an expirience of using Actors for their real projects. What problems did you face? What was your expirience? Thank you
18 replies