"You shouldn't start a new project with microservices, even if you're sure your application will be big enough to make it worthwhile." - Martin Fowler. In this talk we will follow Mr. Fowler's advice and build a Majestic Monolith that can easily be refactored to microservices if and when the need arises. We will look at 7 strategies for successful majestic monolith building: Using Domain Driven Design and Bounded Contexts, Putting API's first, Making data autonomous, Avoiding bottlenecks, Committing to continuous integration, Embracing and measuring code quality, Adopting the Citadels and Outposts pattern. Of course tools are required to implement strategies, and in this talk we will use Quarkus, the Supersonic, Subatomic Kubernetes Native Java Framework, but you will be able to apply these strategies with almost anything. There will be a bit of live coding and a lot of code available on GitHub.
7 Strategies for Building Majestic Monoliths
Seven strategies for building a Majestic Monolith that can refactor to microservices when the need arises.