Messengers are a part of lots of modern mobile apps. Nowadays it is one of the ways for users to communicate. In this talk we would like to share our experience of a messenger development for Avito as a part of a big mobile application with a multimillion audience. We'll cover various realization ways using the Avito messenger evolution as an example: how we were developing our messenger from a simple HTTP-API till WebSockets usage, pros, cons, and pitfalls of different ways. How we were designing a client-server API and how Swift helped us in that. You'll learn how to ensure the message delivery to your clients, online status of users, messages status and other functions of modern messengers and their realization. Nowadays messengers rapidly evolve and new features have to be added rather fast. We'll tell you how to implement a scalable architecture that enables to easily add new features.