Modern architectures consist of many distributed components or services, which shall be as loosely coupled as possible. Still, they need to communicate with each other in order to fulfil business requirements. Now, is event streaming always the best approach, or when should you look at asynchronous messaging, or REST? What is best covered via Kafka? Where do you hit limits? What are the tradeoffs, and how does all of this influence coupling of your components? This talk will help you answer important questions for your project. You will better understand not only the architectural implications but also the effect on the productivity of your teams.