We may earn an affiliate commission when you visit our partners.
Course image
Michael Pogrebinsky | Software Architecture, System Design, Java Expert and Top Developer Academy LLC

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.

Read more

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, 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.

Enroll now

What's inside

Learning objectives

  • Design and architect modern systems using microservices & event-driven architecture
  • Migrate legacy monolithic architecture to microservices architecture
  • Developer, test, deploy & troubleshoot microservices in production
  • Apply industry-proven best practices & design patterns for modern software architecture

Syllabus

Introduction

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.

Read more

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 Course Workbook
Migration to Microservices Architecture

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.

Migration to Microservices Architecture - Quiz
Microservices - Principles and Best Practices

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.

Structured Autonomy for Development Teams
Micro-frontends Architecture Pattern
API Management for Microservices Architecture
Microservices - Principles and Best Practices Quiz
Event-Driven Architecture
Introduction to Event-Driven Architecture
Use Cases and Patterns of Event-Driven Architecture
Message Delivery Semantics in Event-Driven Architecture
Message Broker Technologies - Delivery Guarantees
Introduction to Event-Driven Architecture - Quiz
Event-Driven Microservices - Design Patterns
Saga Pattern
CQRS Pattern
Event Sourcing Pattern
Event-Driven Microservices, Design Patterns - Quiz
Testing Microservices and Event-Driven Architecture
Testing Pyramid for Microservices - Introduction and Challenges
Contract Tests and Production Testing
Contract Tests Solutions
Testing Microservices and Event-Driven Architecture - Quiz
Observability in Microservices Architecture
Introduction to the Three Pillars of Observability in Microservices
Distributed Logging
Metrics
Distributed Tracing
Distributed Tracing Solutions
Observability in Microservices Architecture - Quiz
Deployment of Microservices and Event-Driven Architecture in Production
Microservices Deployment - Cloud Virtual Machine, Dedicated Hosts and Instances
Cloud Virtual Machine, Dedicated Hosts and Instances - Solutions
Serverless Deployment for Microservices using Function as a Service
Serverless Deployment for Microservices using Function as a Service - Solutions
Containers for Microservices in Dev, Testing and Production
Container Orchestration and Kubernetes for Microservices Architecture
Bonus Section
Bonus Lecture - Let's Keep Learning

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Suits seasoned software engineers who want to lead or become software architects
Taught by an ex-Google Software Engineer and current Software Architect who delivers hands-on experience with Large Scale Systems and Microservices
Offers a deep dive into System Design Interview topics for tech companies with large-scale systems
Offers a downloadable workbook for taking notes and reviewing material
In-demand skills, such as the ones taught in this course, can help learners save their organizations costs and improve efficiency
May require prerequisite knowledge of Software Architecture & Design or related real-world work experience

Save this course

Save The Complete Microservices & Event-Driven Architecture to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Complete Microservices & Event-Driven Architecture with these activities:
Prepare digital course binder
Organize materials, assignments, notes, and exams to improve recall, understand the course structure, and to identify foundational concepts.
Show steps
  • Compile existing course notes
  • Create a dedicated digital notebook for this class
  • Create sections to organize notes and materials
  • Scan or photograph printed materials
  • Upload materials to the digital notebook
Review basic software architecture concepts
Review the fundamental concepts and principles that will be covered in the course to bring you up to speed for the course.
Browse courses on Software Architecture
Show steps
  • Browse online tutorials or articles on software architecture
  • Read a book or whitepaper on the subject
  • Review previous notes or materials on software architecture
  • Complete practice problems or exercises
  • Participate in online forums or discussion groups
Draw a layered diagram of a legacy monolithic application
Create a visual representation of the structure and components of a monolithic application to improve understanding and for use as a reference.
Show steps
  • Identify the different components and layers of the application
  • Draw a diagram that represents the relationships between the components
  • Include labels and annotations to explain the functionality of each component
  • Consider using a software modeling tool or whiteboarding tool
  • Review and refine the diagram to ensure accuracy and clarity
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow an online tutorial or course on microservices architecture
Explore and understand microservices architecture and its principles through guided instruction.
Show steps
  • Identify reputable online platforms or instructors offering tutorials
  • Choose a tutorial that aligns with your learning style and goals
  • Follow the tutorial step-by-step, completing exercises and assignments
  • Take notes and ask questions to clarify concepts
  • Apply what you learn to practical examples or projects
Practice designing and simulating microservices interactions
Gain hands-on experience and reinforce concepts by simulating real-world microservices interactions.
Show steps
  • Choose a scenario or use case for your simulation
  • Design the microservices involved, defining their responsibilities and interactions
  • Use a simulation or modeling tool to create a virtual environment
  • Simulate the interactions between the microservices, observing the results
  • Analyze the simulation, identify potential issues, and refine your design
Contribute to an open-source project related to microservices architecture
Apply your knowledge and skills by contributing to the broader microservices community, gaining valuable experience and insights.
Show steps
  • Identify open-source projects related to microservices architecture
  • Review the project's documentation and codebase
  • Identify an area where you can contribute, such as bug fixes, feature enhancements, or documentation improvements
  • Make your contributions and submit pull requests
  • Collaborate with project maintainers and other contributors
Mentor a junior developer or student interested in microservices architecture
Share your knowledge and experience by mentoring others, fostering their growth and understanding of microservices architecture.
Show steps
  • Identify opportunities to mentor through volunteering or outreach programs
  • Connect with individuals who are eager to learn about microservices architecture
  • Share your insights and experiences, providing guidance and support
  • Encourage questions and discussions to foster a deeper understanding
  • Provide feedback and encouragement to help mentees grow and develop

Career center

Learners who complete The Complete Microservices & Event-Driven Architecture will develop knowledge and skills that may be useful to these careers:
Microservices Developer
Microservices Developers are responsible for designing, developing, and deploying microservices. They work with other members of the development team to create and maintain software applications. This course can help you become a successful Microservices Developer by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Site Reliability Engineer
Site Reliability Engineers are responsible for the design, development, and maintenance of software applications. They work with other members of the development team to create and maintain software applications. This course can help you become a successful Site Reliability Engineer by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Technical Lead
Technical Leads are responsible for the overall technical vision and execution of software projects. They work closely with software engineers to design, develop, and deploy software applications. This course can help you become a successful Technical Lead by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Enterprise Architect
Enterprise Architects are responsible for the design and development of enterprise-wide software systems. They work with stakeholders to gather requirements, design system architectures, and develop implementation plans. This course can help you become a successful Enterprise Architect by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Business Analyst
Business Analysts are responsible for the analysis of business needs and the design of solutions to meet those needs. They work with stakeholders to gather requirements, design business processes, and develop implementation plans. This course can help you become a successful Business Analyst by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Product Manager
Product Managers are responsible for the design, development, and marketing of software products. They work with stakeholders to gather requirements, design product architectures, and develop marketing plans. This course can help you become a successful Product Manager by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Data Engineer
Data Engineers are responsible for the design, development, and maintenance of data pipelines. They work with stakeholders to gather requirements, design data architectures, and develop implementation plans. This course can help you become a successful Data Engineer by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Cloud Architect
Cloud Architects are responsible for designing and managing cloud-based infrastructure and applications. They work with stakeholders to gather requirements, design cloud architectures, and develop implementation plans. This course can help you become a successful Cloud Architect by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
DevOps Engineer
DevOps Engineers are responsible for the design, development, and maintenance of software applications. They work with other members of the development team to create and maintain software applications. This course can help you become a successful DevOps Engineer by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Software Architect
Software Architects are responsible for designing and overseeing the development of software systems. They work with stakeholders to gather requirements, design software architectures, and develop implementation plans. This course can help you become a successful Software Architect by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Systems Engineer
Systems Engineers are responsible for the design, development, and maintenance of complex systems. They work with stakeholders to gather requirements, design system architectures, and develop implementation plans. This course can help you become a successful Systems Engineer by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Software Tester
Software Testers are responsible for testing software applications to ensure that they meet requirements. They work with other members of the development team to create and maintain software applications. This course can help you become a successful Software Tester by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Full-Stack Developer
Full Stack Developers are responsible for the design, development, and deployment of software applications. They work with other members of the development team to create and maintain software applications. This course can help you become a successful Full Stack Developer by providing you with a deep understanding of microservices and event-driven architecture. You will learn how to design and architect scalable, reliable, and loosely-coupled microservices. You will also learn how to test and deploy microservices to production using cloud computing, serverless, and container technologies like Kubernetes.
Machine Learning Engineer
Machine Learning Engineers are responsible for the design, development, and deployment of machine learning models. They work with stakeholders to gather requirements, design model architectures, and develop implementation plans. This course may be helpful for Machine Learning Engineers who are interested in learning about microservices and event-driven architecture. Microservices and event-driven architecture can be used to design and develop scalable, reliable, and loosely-coupled machine learning pipelines. This can help Machine Learning Engineers to improve the efficiency and accuracy of their models.
Data Scientist
Data Scientists are responsible for the analysis of data to extract insights and develop predictive models. They work with stakeholders to gather requirements, design data pipelines, and develop models. This course may be helpful for Data Scientists who are interested in learning about microservices and event-driven architecture. Microservices and event-driven architecture can be used to design and develop scalable, reliable, and loosely-coupled data pipelines. This can help Data Scientists to improve the efficiency and accuracy of their models.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Complete Microservices & Event-Driven Architecture.
Provides patterns for designing and implementing microservices. It covers topics such as service discovery, load balancing, and fault tolerance. This book good reference for anyone who is working with microservices.
Provides a practical guide to building microservices. It covers topics such as designing microservices, deploying microservices, and testing microservices. This book great resource for anyone who is new to microservices.
Provides a comprehensive overview of data-intensive applications. It covers topics such as data modeling, data storage, and data processing. This book good resource for anyone who is interested in learning more about data-intensive applications.
Provides a practical guide to software architecture. It covers topics such as software design, software patterns, and software quality. This book good resource for anyone who is interested in learning more about software architecture.
Provides a comprehensive overview of domain-driven design. It covers topics such as domain modeling, bounded contexts, and aggregate roots. This book good resource for anyone who is interested in learning more about domain-driven design.
Provides a practical guide to building microservices. It covers topics such as designing microservices, deploying microservices, and testing microservices. This book good resource for anyone who is new to microservices.
Provides a practical guide to migrating from a monolithic architecture to a microservices architecture. It covers topics such as identifying microservice boundaries, designing microservices, and deploying microservices. This book good resource for anyone who is planning to migrate to a microservices architecture.
Provides a comprehensive overview of enterprise integration patterns. It covers topics such as message routing, content filtering, and error handling. This book good resource for anyone who is interested in learning more about enterprise integration patterns.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to The Complete Microservices & Event-Driven Architecture.
Scoping and Organizing .NET Microservices Using Event...
Most relevant
Design Microservices Architecture with Patterns &...
Most relevant
Building Event-driven Microservices with the Azure Cosmos...
Most relevant
Getting Started with Apache Kafka
Most relevant
Microservices: Clean Architecture, DDD, SAGA, Outbox &...
Most relevant
Build Microservices with .NET & Amazon Web Services
Most relevant
Introduction to Event-Driven Architecture
Most relevant
Microservices with NodeJS, React, Typescript and...
Most relevant
Event-Driven Microservices: Spring Boot, Kafka and Elastic
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser