Distributed Systems Design — Full Course Syllabus
Core concepts for designing scalable, resilient backend systems — load balancing, sharding, fault tolerance, and event-driven architecture.
- 1. Microservices ArchitectureAn architectural style that structures an application as a collection of loosely coupled services.
- 2. Load BalancingThe process of distributing network or application traffic across multiple servers.
- 3. Caching StrategiesTechniques to store copies of files or data in a cache to reduce access time and improve performance.
- 4. API Rate LimitingA technique to control the amount of incoming requests to an API to prevent overload.
- 5. Horizontal ScalingAdding more machines to a pool to handle increased load, as opposed to vertical scaling.
- 6. ContainerizationThe use of containers to package applications and their dependencies for consistent deployment.
- 7. Monitoring and LoggingTracking application performance and logging events for troubleshooting and analysis.
- 8. API GatewayA server that acts as an API front-end, receiving requests and routing them to the appropriate backend service.
- 9. Database ShardingA method of distributing data across multiple databases to improve performance and scalability.
- 10. Service DiscoveryThe process of automatically detecting devices and services on a network.
- 11. Fault ToleranceThe ability of a system to continue operating properly in the event of a failure of some of its components.
- 12. Data ReplicationThe process of sharing information across multiple databases to ensure consistency and availability.
- 13. Event-Driven ArchitectureA software architecture pattern promoting the production, detection, consumption of, and reaction to events.