High-level design
Now that we have a clear understanding of the functional and non-functional requirements, as well as the scale calculations, let’s dive into the high-level design of the file-sharing service. The goal is to create an architecture that is scalable, reliable, and efficient in handling the vast amount of documents, revisions, and user interactions. Figure 13.2 shows the high-level design of the file-sharing system, which includes load balancers, API gateways, microservices for document management, collaboration, access control, caches, databases, and storage systems.
Figure 13.2: The high-level system design of a file-sharing service
Let us discuss the software components and modules shown in this Figure 13.2.
Software components and modules of high-level design
The following are the different components and modules:
- Client-server architecture:The file-sharing service will follow a client-server architecture, where clients...