This documentation outlines the setup and functionality of a distributed inventory system designed to be fault-tolerant, highly available, and scalable, with multiple geographically distributed server processes.
Implemented with a 3-server architecture for simplicity:
- Architecture
- Outlined in the detailed system architecture diagram below.
-
Components
- Name service module, Distributed lock module, Server, and Client.
-
Protocols & Modules
- Primary-based protocol and Two-phase commit protocol for consistency.
- gRPC for communication.
- Etcd for dynamic service discovery.
- Maximum of 3 server instances.
- Single product type.
- Excludes catastrophe recovery scenarios.
- Orders processed only if inventory matches demand.