- No shared clock
- No shared memory
- Shared resources [shared b/w nodes of system]
- Concurrency & Consistency
- Different parts of distributed system need to be able to talk
- Rquires agreed upon format or protocol
- Lots of things can go wrong need to handle them somehow
- Client can’t find servers
- Server crash mid request
- Server response is lost
- Client crashes