This document discusses strategies for splitting a monolithic application into microservices. It provides an example domain of train management that can be split into contexts of train routing, booking, traffic info, and invoicing. The document outlines challenges with shared databases and outlines patterns like autonomous bubbles that communicate asynchronously using events or notifications to address these challenges. It also includes exercises splitting database tables and integrating new features like a "nonon" train offering into the modularized architecture.