© 2026 Dometrain. All rights reserved.
Get started with System Design using Dometrain's System Design Editor
System design is often taught as a set of abstract principles, making it hard to know where to begin. This course builds your understanding from the ground up, starting with the most fundamental components and composing them into realistic, scalable architectures. We begin with a single Client Calling a Service that uses a SQL Database, establishing the core three-tier request path. From there, we add the essential front-door components: routing requests through an API Gateway, spreading traffic with a Load Balancer, and serving static assets from a CDN. You’ll then learn to optimize for performance by adding a Cache in front of the database using the Cache-Aside pattern and learn the difference between CDN Caching and Application Caching. The course then goes deeper into the data layer, exploring relational patterns like scaling reads with a Read Replica and why each service should own its own database, before expanding your toolkit to include NoSQL for high-volume lookups and Object Storage for storing files. With the data layer established, we’ll cover specialized read patterns like adding a Search Index and building a Read-Optimized View for analytics. Finally, you’ll master asynchronous workflows, starting with offloading slow work to a Queue with background Workers and a Dead Letter Queue for failures, and finishing with advanced event-driven patterns like publishing events to a Topic, fanning out to multiple subscribers, and handling high-volume data with a Stream to fully decouple your services.
I liked the interactivity. Making my own diagrams helps enforcing what was learned
Great course. I am thinking about following up with the second part. The third one might be a bit too expensive for me right now though.
Interactive diagrams and well-thought basic blocks (elements) on the diagram
Refresh my memory about a lot of essential blocks. One thing to point out - archive warehouse
I really like the concept of the hands on. Read how it work, why it work the way it works, and the implementing it. Cannot wait for the advanced course.
Referencing my thinking of system design. Queues, event and the difference between them make a lot more sense now.
The interactive way (diagramming) is a great way to improve understanding of the recommended flow of the design system.
Everything is a trade-off, as it has its pros and cons.
The course was actually great. I enjoyed solving making those diagrams and it was a learning experience too. System design is one of my beloved subjects and i can easily say that this course met my expectations. Great Job!
I really learned a lot of different system design in this course with their reasoning, so i can make better decisions what design should i use for different situations.
The diagram designer was really helpful. Also, the amount of architectures described had a meaningful impact.
I didn't know the difference between event streams and topics.