F
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!