Messaging systems are important part of our life. We use them every day in almost every single interaction with other people/systems via electronic devices. But how do we design and build such a system that has to handle millions of messages every day? In this talk I would like to say few words about each step of creating and handling such a system. From design decisions like choosing the language and the platform through building it and handling it in production. Decision on tools that you made will have a big impact on the final product and how it works on day-to-day basis.