Distributed architectures
When you go for modular solutions that can be deployed independently (e.g., microservices), you enter the complex world of distributed architectures: eventual consistency, message brokers, asynchronous vs. synchronous APIs, resilience upon failing parts, increased latencies, difficult observability, amongst others. Let me help you navigate this complexity before you come to hate it and want to return to monolithic architectures, starting the vicious cycle again.