Deep Dive: Solution Architecture

Master solution architecture and turn business needs into scalable, maintainable systems

About This Course

Enhance your solution architecture skills in this hands-on course that will help you transform business requirements into scaleable systems. From the development of a new enterprise application to refactoring an existing one, you will gain useful lessons for making sound architectural decisions based on business value along with technical excellence. You will begin by building modular monoliths by using modern patterns that allow for future growth, as well as by structuring the system rightly, being integral, and making it easy for communication among the components. The course will walk you through architectural maturity, with particular emphasis on observability for continuous improvement and the right time to transition from monoliths to microservices. You will study event-driven patterns like the Outbox Pattern and how to implement strategies for synchronous and asynchronous communication. You'll also develop systems thinking skills with the help of methods such as Event Storming and C4 modeling to manage technical and social complexity. By getting your decisions right with Architecture Decision Records (ADRs), you'll be prepared to design systems in line with business objectives and evolving conditions. Your skills as a solution architect are about to level up! In this in-depth course, you'll be an art and science master of solution architecture by gaining knowledge to transform business requirements into robust, scalable, and sustainable systems. No matter if you're building your first business app or refactoring a legacy system, this course provides pragmatic guidance on architecting trade-offs that reconcile technical quality with business value.

Course Curriculum

4h 43m 9 sections
Welcome
00:48 Free preview
What will you learn in this course?
03:38 Free preview
Who is the course for and prerequisites
00:49 Free preview
Why we start here
05:14
Modules not layers
07:42
Fitness functions to enforce architecture
08:25
Module to module communication
10:05
Data patterns for modularity
07:10
Seeing inside the box
11:05
Fitness functions to enforce requirements
04:03
Living Documentation
03:48
Wrap up
02:26
When metrics lie
01:38
Observability driven improvements
07:39
Preparing for evoloution part 1
05:19
Preparing for evoloution part 2
07:38
Strategic Decisions in Microservice Evolution
05:27
Using events for evoloution
02:41
The Outbox Pattern
03:17
Public vs private events
03:17
Dealing with errors
05:03
Observability driven improvements part 2
04:57
Architecture separation of concerns
05:19
Wrap up
01:15
Reflections on Architectural Complexity
03:54
Essential vs. Accidental Complexity
04:38
Synchronous Service Resilience
04:59
Asynchronous Service Resilience
02:29
Enhancing System Resilience: Balancing Caching and HTTP Requests
08:01
Understanding Idempotency in Distributed Systems
06:51
Balancing Technical and Social Complexity
04:27
Architecting Success: Bridging Business and Technology
04:49
The Pitfalls of Over-Engineering
03:04
The Art of Systems Thinking for Architects
03:02
Understanding Domains through Storytelling
05:15
Unlocking Business Insights with Event Storming
07:52
C4 Modelling Uncovered
05:50
From User Journeys to Architecture
04:01
Effective technology choices
01:53
The Serverless Spectrum
07:19
Balancing Serverless Functions and Containers
05:19
Modularity For Flexibility
06:48
Make smart decisions to solve real problems
03:30
Stateless processes and data lock-in
05:51
The hidden factor in technology choices
04:00
Simplifying Architecture
02:45
Introduction
01:07
Resume Driven Development
08:29
Navigating the architects elevator
04:51
Guardrails not mandates
03:06
Golden paths to enable teams
05:34
Understand architecture decision records
07:18
Navigating chaos in software architecture
03:31
Modularity, your #1 concern
02:08
Building evolvable architectures
05:52
A case study in flexibility
03:41
Conclusion
03:59

Meet Your Instructor

James Eastham

James Eastham

James Eastham is a Serverless Developer Advocate at Datadog and a Microsoft MVP. He has over 10 years of software experience at all layers of the software development process and has spoken at conferences all over the world. He answered phones in front-line support, administered databases, and built SSIS packages, as well as developed cloud-native backends with serverless technologies. He spent time at AWS working with some of the biggest companies on the planet, migrating workloads from data centers into the cloud and modernizing in the process. James produces content on YouTube focused on architecting and building applications with serverless technologies using .NET and Rust. He also has a strong interest in and expertise in event-driven architecture and building more loosely coupled systems.

View all courses by James Eastham

What's New

Migrating: ASP.NET Web APIs to ASP.NET Core
course

Migrating: ASP.NET Web APIs to ASP.NET Core

A step-by-step process to migrate ASP.NET Web APIs from .NET Framework to ASP.NET Core.

Learn More
Getting Started: Caching in .NET
course

Getting Started: Caching in .NET

Let's make the hardest thing in programming easy for .NET software engineers.

Learn More
From Zero to Hero: Testing with xUnit in C#
course

From Zero to Hero: Testing with xUnit in C#

Learn how to test any codebase in .NET with the latest version of xUnit, the industry-standard testing library.

Learn More
Create a ChatGPT Console AI Chatbot in C#
blog

Create a ChatGPT Console AI Chatbot in C#

This walkthrough is your hands-on entry point to create a basic C# console application that talks to ChatGPT using the OpenAI API.

Learn More