As a software project grows, so does its complexity. Micro-services are all the rage for breaking up code into smaller, more manageable pieces. But how does one iterate to a micro-service architecture? How does one keep code not only distributed, but decoupled? In this talk I'll explain how a message bus can be used to facilitate not only service communication, but service development. I'll focus on RabbitMQ, though the opinions presented can be applied to other technologies.