P2P shines when you want to scale capacity with the crowd. In client-server, every new user adds load to your servers. In P2P, every new peer brings its own upload bandwidth and storage, so the network often gets faster as it grows. This is why P2P is a natural fit for large file distribution, live video at scale, and systems that need to survive without a trusted operator.
The costs are real. Discovery and consistency are much harder without a central coordinator, so engineering effort goes up. Peers come and go constantly, a behavior called churn, so the system must constantly heal. Security is trickier because you are trusting unknown machines, which is why hashing, encryption, and consensus are not optional. Latency can be unpredictable because the peer holding your data might be on the other side of the planet on a slow connection.
A practical middle ground is the hybrid model. Spotify originally streamed music partly over P2P to cut bandwidth costs while keeping central servers for login and search. WebRTC sets up direct peer connections for video calls but still uses central STUN and TURN servers to punch through firewalls. Pure P2P is rare in production; most real systems keep a thin central layer for the parts that genuinely need coordination.