
This lecture provides an introduction to Microservices Architecture and Event-Driven Architecture.
It gives the learner the motivation for learning Microservices Architecture and its importance for their organization.
This lecture talks about the benefits and challenges of Microservices Architecture.
It discusses the issues of a monolithic architecture and how a Microservices Architecture can address those issues.
It also emphasizes that Microservices Architecture is not a silver bullet, and it requires expertise to do correctly.
Download the interactive course workbook from this lecture's resources to access bullet points, architecture diagrams, and space for notes. Leave a thoughtful review when prompted to help improve this course.
This lecture discusses the importance and challenges of setting correct boundaries between microservices.
It then offers 3 core principles for successful microservices.
Those core principles are the prerequisites for the correct migration to microservices architecture.
This lecture offers a few ways to decompose a monolithic application into separately deployed and managed microservices.
In this lecture, the learners get a well-defined recipe of steps, tips, and patterns to follow in migrating an existing legacy monolithic application into a modern microservices architecture.
This lecture talks about one of the most important principles, the database per microservice.
It talks about why it's so important in a microservices architecture, and then it discusses the challenges and limitations we encounter, which will be addressed later in the course.
This lecture talks about the DRY (Don't Repeat Yourself) principle and how it applies (or doesn't) in Microservices Architecture.
It talks about when to apply this principle in Microservices and when to take a different approach.
Adopt structured autonomy to balance team freedom with uniform infrastructure, API guidelines, and security, defining three tiers—shared practices, restricted language and database choices, and fully autonomous releases.
Transform a monolithic frontend into independently owned micro-frontends loaded at runtime by a container application, avoiding shared state and enabling teams to own their features end to end.
Explore API management in microservices and learn how the API gateway pattern decouples clients from internal services, enabling traffic throttling, authorization, TLS termination, and data translation.
Learn how event driven architecture, with producers, a message broker, and consumers, enables asynchronous, decoupled microservices and efficient workflows in a real-life video on demand subscription scenario.
Examine message delivery semantics in microservices and event-driven architecture, detailing at most once, at least once, and exactly once guarantees across publishers, brokers, and subscribers.
Explore the saga pattern for managing distributed transactions in microservices and event-driven architectures. Define problems, describe two implementations—workflow orchestration and event driven—using compensating operations to rollback on failure.
Explore the seekers pattern, a cqrs approach that separates command and query workloads into distinct services with an event-driven broker, enabling scalable writes and efficient reads.
Apply the testing pyramid from monoliths to microservices, balancing unit, integration, and end-to-end tests, while addressing challenges of end-to-end complexity, team ownership, and event-driven testing.
Learn how contract tests keep api consumer and provider in sync, enabling lightweight integration testing with mocks, and production testing via blue-green deployment and canary testing.
Explore how distributed tracing, the third pillar of observability, tracks requests across microservices and event-driven architectures, revealing trace IDs, spans, and context to diagnose performance bottlenecks.
Explore cloud deployment options for microservices, from multi-tenant cloud virtual machines to single-tenant dedicated hosts and dedicated instances, detailing pricing, security risks, and noisy neighbor effects.
Explore function as a service, a serverless, event-driven deployment for microservices that pays per request and scales with demand. Learn use cases, benefits, trade-offs, pricing, performance, and security considerations.
Explore how containers solve parity between development, testing, and production for microservices, replacing heavy virtual machines with portable, fast, and cost-efficient container images.
Explore container orchestration with Kubernetes architecture, learning how a control plane coordinates worker nodes, containers, and network routing to deploy, scale, heal, and manage microservices in production.
Do you want to learn the two most popular and modern software architecture styles?
Are you looking to grow your career to the role of a Technical Lead or Software Architect?
You came to the right place!
Taught by an Ex-Google Software Engineer and a Software Architect with real, hands-on experience with Large Scale Systems and Microservices Architecture, this is the most comprehensive and up-to-date course on Microservices and Event-Driven Architecture.
The combination of Microservices Architecture and Event-Driven Architecture is the biggest contributor to the success of top-tech companies like Google, Amazon, Netflix, Airbnb, Uber, Spotify, eBay, and many others.
This course will teach you all the core principles, design patterns, and industry-proven best practices to apply Microservices and Event-Driven Architecture to your system.
Throughout the course, you will learn to:
Migrate a Legacy Monolithic Application to Microservices Architecture
Design scalable, reliable, and loosely-coupled Microservices
Test and Deploy Microservices to production using Cloud Computing, Serverless, and Container Technologies like Kubernetes.
In addition, this course includes many:
Real-world examples.
Detailed software architecture diagrams.
Links to external resources and technologies.
Quizzes to help you test your knowledge
A downloadable workbook to take notes and review the material
By the end of the course, you'll be able to:
Help your organization save costs and increase efficiency by using Microservices and Event-Driven Architecture
Follow industry-proven design principles for architecting scalable and reliable Microservices
Apply your knowledge to System Design Interviews
This course is for you If:
You are an experienced software engineer and want to take your career toward the role of a Technical Lead or Software Architect
You want to help your company cut costs, increase scalability, and improve its software architecture by migrating to microservices.
You are preparing for a System Design Interview at top tech companies that run large-scale systems.
So what are you waiting for? :)
Let's get started!
FAQ
- "My company doesn't use Microservices. Should I still take this course?"
Yes! Microservices Architecture and Event-Driven Architecture are core skills for any senior software engineer and software architect. Once your company is ready to migrate to Microservices Architecture, you will play a vital role in this transition. Your knowledge and skills will help your company migrate successfully, avoiding all the common pitfalls and anti-patterns. This will help your company save a lot of money, which will ultimately help grow your career.
- "There are many other courses on Microservices Architecture. How is this course different?"
Unfortunately, many courses on Microservices follow (and sometimes even copy) widely available articles and often outdated purely theoretical books without necessarily having the real-world experience to distill what is important and correct. In this course, I bring you years of my personal experience working on large-scale systems at companies like Google and Maginte (formally Rubicon Project), as well as the most up-to-date lessons of thousands of industry leaders and software architects, sharing knowledge in the most prestigious software architecture conferences. This course will bring you real-world knowledge that you can confidently apply in practice within your company.
- "Does this course involve any coding?"
No. This is a Software Architecture course primarily focused on Microservices Architecture. It is not a programming course. The skills you learn in this course are applicable to any programming language, cloud vendor, or technology stack. One of the main advantages of this approach is while technologies get outdated very fast, the knowledge you get from this course will last you for many years and will be equally applicable to any company you work for.
- "Does the course have any prerequisite?"
The only prerequisite is a few years of software development experience. Taking the Software Architecture & Design of Modern Large Scale Systems or having some software architecture experience is recommended but not required. This course will teach you everything you need about Microservices Architecture and Event-Driven Architecture.