When writing the first version of Urban Massage, we followed the standard agile approach when starting a new project — build a big app that can do everything you need — but at the same time make sure that you encapsulate in a way that you can easily split out each concept into a separate module / API / service at a later date.

As we scale faster and faster, maintaining a monolith is obviously not an option —I’ll be speaking in more depth in a later posts about how we go about refactoring in practice, but in the meantime here are some rules we chose to follow along the way.