Great content! When will we have the second part of this article?
Although this blog post ends up focusing on the infra side of things, a promising alternative to the monolith/microservices/serverless architectures I stumbled upon recently is Polylith. In essence, you use a single repository to store your application's code but structure your project in a way that lets you have multiple deployable artifacts when/if the need arises, so your system is only optionally distributed, there's no need for big rewrites and monolith->microservices migrations everyone's doing, and you end up alleviating the initial infra set up costs!
Great article Marcelo!
I have been part of many teams in my career and all of them suffer from the same problem, coupling. The team is composed of very talented engineers that give their best to build the software in the best way they know and in the quickest way possible. What they don't do is think about the future and think that the solution they are building at the moment will need to change for a variety of reasons.
So the final product is always coupled. And with many types of coupling:
Library coupling: "Let's use this library with 22 stars on GitHub, we can deliver this feature a lot faster". Until you realize that this library also depends on other n libraries and will not be updated making you stuck with your current versions of even unrelated libraries.
Infrastructure coupling: This happens especially when the team decides to go microservices to "reduce" the coupling but in the end, services are totally coupled to databases, pub subs, and many other services from the cloud provider. In a way that when you change the schema o something in one service, it breaks other services that depend on that schema.
Coupling is what makes everything hard to change and I think that the only way to mitigate that is by having guidance and alignment since the beginning from experienced people so this become part of the culture and values of the whole engineering team and the existing team members can pass it to the new members that arrive.
Great articule Uemura, and I loved the mindset applied for the infrastructure team: build usable stuff.
PS: very useful and friendly the drawings about monolith, keeping it simple and acccesible ππΎ
huafeng qi
εΈ ζ°ηζεεζ₯δΊ
Who has access to the source code for a completed, large-scale multiplayer online Android and iOS game developed by a major gaming company? The game must have top-notch graphics. I will not accept games developed by individuals. I am willing to pay a high fee to purchase it for learning and research purposes. Contact me q791864008q@gmail.com