
Explore microservices architecture, patterns and techniques, identifying technical challenges and common pitfalls in microservices-based systems while implementing software architecture patterns for scalable, distributed systems, including design, deployment, and monitoring.
An introduction to microservice architecture explains what microservices are, their loosely coupled, fine-grained services, and how they intercommunicate to form a modular, scalable system, with costs and testing tradeoffs.
Identify failure factors in microservices projects, such as poor planning and underestimation of development, deployment, and interprocess communication, and emphasize automation and realistic planning to avoid anti-patterns.
Compare monorepos and discrete repositories for microservices, balancing input/output contract synchronization, build times, code ownership, and the risk of tight coupling.
Decompose systems into loosely coupled, highly cohesive microservices guided by the common closure principle and business capabilities, enabling fine-grained services such as order history, placement, tracking, and cart promotions.
Explore inter-service communication in microservices, comparing synchronous remote procedure invocation using REST or Thrift with asynchronous message-based patterns on a message bus, and evaluating where each method fits.
Explore how the microservice registry tracks available instances and network locations to enable dynamic scaling, with startup registration, shutdown removal, and health check api.
Compare data patterns in microservices, focusing on shared database versus database per service, transactions, decoupling, and the resulting performance and maintenance trade-offs.
Explore the event sourcing pattern with an event store that publishes state-change events, enables state reconstruction by replaying events, and uses snapshots to optimize performance, with CQRS and eventual consistency.
Explore failover mechanisms in microservice architectures, ensuring redundancy and high availability for critical resources, including a redundant service registry and logs to diagnose failures.
Learn how the circuit breaker pattern prevents cascading failures in microservices by timing out failed synchronous requests, probing recovery after a timeout, and preserving system stability.
Implement the health check API as a standard route to report service status. Use 200 for healthy and 500 for errors, with optional custom responses for registry and monitoring tools.
Explore logging techniques to trace requests across microservices using a globally unique identifier, and leverage log aggregation tools such as elasticsearch, kibana, splunk, and cloudwatch for end-to-end visibility.
In this course you will learn in detail the software architecture patterns and techniques to develop robust and scalable microservices
We will go through techniques and design patterns that are required in enterprise architecture including :
The course is structured around both video tutorials explaining different techniques and architecture patterns, and (optional) assignments to help make sure you're understanding what we're learning.
I'm also available to answer any queries you may have regarding any course material which you didn't understand or would like further detail on.
_______
Just in case you're still not convinced if you should take this course, here are a couple of positive reviews from the hundreds I have received on my bestselling, top rated Udemy courses:
"The course is comprehensive and well explained through clear and concise examples, and shows that the instructor is highly experienced in their field. Overall this course is excellent and highly appropriate for software developers looking to improve their architectural and programming skills, both beginners as well as more advanced programmers. I will be looking forward to more courses by the author in the future." - J. Fusselberg
"High quality videos, lectures are clear and to the point. This course is highly recommended for any developer who wants to move on to a senior position or software architect role. However, it will also be a good start for beginner to introduce them to proper coding practices early on." - Roberto de Souza
I look forward to seeing you in my course and hearing how the course has helped you progress in your career !