Oh boy. I've been in this micorservice trench for 2 years now and while I do love the simplicity of the actual business logic being contained in one context and the idea of owning a few services yourself. Microservices are HARD. When starting out you don't even know the full business domain, the requirements, the potential bottlenecks or even at what scale you will be running. To design a system with these unknowns in advance is pretty much impossible. There is also a whole slew of more work regarding infrastructure and actual data transportation, you are replacing in code calls to external calls and that comes with it sets of problems and time consumption. I'm having a lot of fun but I would not suggest anyone to start out with microservices, instead build a cloud first monolith or SOA system and see where that takes you. Scaling in the cloud is so easy these days, you might never need microservices.
Wonderful summery! Yet not a one size fit all summery imo…. Just from a theoretical pov you’re totally right, but certain business areas with very very complex usecases just benefits of an microservice architecture since this is key to break down complexity actually while maintaining a variety of possible customer usecases which are consuming a microservice
If I may just add to that, in the cons. To share my experience and hopefully get your feedback as well. 1.Something that all "new trends" share. We can't run from bad engineering practices and models into just adopting the new thing as a resort. 2. In the authorization part, we kidna managed the IAM when the team was 3 people, two lines under kinda. On expansion we had to have a clear structure of permissions. And IaC turns from a luxury to a must have or else some team members are going crazy
Good points! IaM is a solution if you’re in the cloud. Sometimes it’s not a viable option. Sometimes you’re dealing with a huge influx of new accounts, managing authorization need something else.
I do not like microservices, but that might be because my studies forced them together with learning DevOps. We did not get a very clear introduction of either and were expected to just figure it out on our own. This video has taught me more on the subject than 10 weeks of struggle with an unclear assignment, which is kinda sad.