Introducing the Mercury program
Back in 2009, in my days as a software developer, I was working at a company that didn’t utilize an internal messaging system. Phones weren’t smart yet, but messaging clients were abundant. However, they all required a central server to be configured in order to manage the messaging network. This wasn’t something that I had access to do, nor was it something the company was willing to supply, so I thought about the idea of a distributed, or peer-to-peer (P2P), messaging system. So, I set out to write one myself, and some of us on the software team used the system for a year or so. It was a fun and distracting side project that we can build upon here as a thought experiment. I called the application Mercury, which is the Roman name for the messenger to the gods.
Let’s take a look at a typical P2P network diagram in Figure 3.1 and explore the benefits of a P2P network over a centralized network: