DOP 322: How to Build Apps That Never Go Down Even When Servers Die

Episode 322

Show Notes

#322: Peer-to-peer technology represents a fundamental shift in how we think about data sovereignty and application architecture. Rather than relying on centralized servers and trusting specific endpoints, peer-to-peer systems allow users to verify data authenticity regardless of its source. This approach eliminates the traditional point-to-point communication model where data flows from a specific server to your device, instead creating networks where any peer can help distribute content while maintaining cryptographic verification.

The technology offers compelling advantages for developers and users alike. Applications built on peer-to-peer foundations can operate without ongoing infrastructure costs, scale naturally as more users join the network, and continue functioning even if the original company disappears. Development becomes simpler in many ways since everything runs locally by default, eliminating complex database configurations and external dependencies. However, challenges remain around debugging distributed systems, ensuring data persistence in small networks, and adapting traditional development workflows to this new paradigm.

In this episode, Darin and Viktor explore these concepts with Mathias Buus Madsen, co-founder of Holepunch and creator of the Pear Runtime. Mathias shares insights from building real peer-to-peer applications, including their chat app Keet, and explains how developers can start experimenting with this technology today.

Frequently Asked Questions

How is peer-to-peer different from a normal client-server application?

Mathias Buus Madsen explains on DevOps Paradox episode 322 that conventional data flows are point to point: you call a specific endpoint and that entity gives you the data. Peer-to-peer inverts the trust model, so it does not matter who serves the data as long as you can verify it came from the right source. He can accept content from his worst enemy and check it cryptographically on his own machine.

Why does peer-to-peer matter beyond file sharing?

Mathias Buus Madsen draws a parallel on DevOps Paradox episode 322 to encryption on the web. Fifteen or twenty years ago it was treated as an optional cost, weighed connection by connection. Nobody now asks whether traffic should be encrypted. He expects authenticating data at rest to follow the same path, and predicts that in twenty years the question will be why it was not always done.

Does peer-to-peer require users to donate their compute?

Mathias Buus Madsen says no on DevOps Paradox episode 322, pushing back on Viktor Farcic’s framing. The resources a device already has for running an app far exceed what the network needs from it when that device joins. Users of BitTorrent were not thinking about reseeding; they wanted the content. He also notes that peer-to-peer needs no token or blockchain-style incentive to work.

What does deploying software mean when there are no servers?

Mathias Buus Madsen describes it on DevOps Paradox episode 322 as producing a cryptographic signature for the new version and handing it to a few peers, who pass it on from there. The internal process before that point is ordinary: test it, have other people test it, then sign. He points out he distributes updates to thousands of users from the laptop he is recording on.

How do you avoid losing data with no central database?

Mathias Buus Madsen argues on DevOps Paradox episode 322 that small networks are the hard case, not large ones. Two peers is the weakest possible arrangement, since one going offline removes half the capacity, and every peer added makes it more resilient. That is the opposite of a centralised system, which struggles as users are added. Where guarantees are needed, you add peers that mirror the data.

What is hard about developing peer-to-peer applications?

Mathias Buus Madsen names debugging on DevOps Paradox episode 322, since the software runs everywhere across versions and devices. He asked a Skype co-founder how they handled it and was told you go with the flow. Privacy compounds it: collecting centralised logs and statistics is unacceptable to the users such an application attracts, so his team logs locally and lets users choose to share.

What is the DevOps Paradox podcast?

DevOps Paradox is a weekly podcast co-hosted by Darin Pope and Viktor Farcic, covering DevOps, platform engineering, and modern software delivery. Episode 322 brings in Mathias Buus Madsen, creator of the Pear runtime, to explain how peer-to-peer changes where trust lives, what deployment and backup mean without servers, and why small networks are the difficult case. Every episode page carries the audio, the video, and a full transcript.

Topics

Share and Download

Guests

Mathias Buus Madsen

Mathias Buus Madsen

As CEO of Holepunch, Mathias brings his passion and extensive expertise in open-source development to the fore, having published more than 1000 modules to npm, the Node.js package manager, totalling billions of downloads every month.

Mathias Buus is a self taught JavaScript hacker from Copenhagen. He works full time on open source projects and has been working with Node.js since the 0.2 days. Mathias likes to work with P2P and distributed systems and is the author of more than 550 modules on npm, including some of the most popular ones for working with streams. In addition he has spoken about “mad science” projects at various conferences around the world.

Hosts

Viktor Farcic

Viktor Farcic

Viktor Farcic is a member of the Google Developer Experts and Docker Captains groups, and published author.

His big passions are DevOps, Containers, Kubernetes, Microservices, Continuous Integration, Delivery and Deployment (CI/CD) and Test-Driven Development (TDD).

He often speaks at community gatherings and conferences.

He has published DevOps Paradox and Test-Driven Java Development.

His random thoughts and tutorials can be found in his blog The DevOps Toolkit.