Real-life distributed systems can differ drastically in many dimensions. These differences depend on factors like the network that deploys them, the hardware they run on, etc.
Thus, we need a common framework to solve problems generically. This way, we don’t need to repeat the reasoning for the different variations of these systems.