The very first thing we tackle

XMPP has similarities to other application-layer protocols like SMTP. In these architectures, a client with a unique name communicates with another client with a unique name through an associated server.
















Each client implements the client form of the protocol, where the server provides routing capability.



user1@test.com -> test.com -> user2@test.com
| XMPP Client | -- | XMPP Server | -- | XMPP Client|


the above commuication is s2c (server to client.) but there are also server to server communications as well and there are xmpp gateways for purpose of translating between foreign messaging domains and protocol



Alt text














Why do we use it?

There are different usecases. But the most common is for IM