Skip to content

Instantly share code, notes, and snippets.

@dcomartin
Last active September 3, 2023 21:50
Show Gist options
  • Star 30 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dcomartin/8edfd129b33226c019331b560f40fa27 to your computer and use it in GitHub Desktop.
Save dcomartin/8edfd129b33226c019331b560f40fa27 to your computer and use it in GitHub Desktop.

System Architecture Course

This course provides a structured approach for designing and implementing large systems that are scalable and highly available.

The challenges designing and building large systems are in how they are decomposed and communicate with each other. You will learn how to define boundaries based on business capabilities and implement asynchronous messaging for communication.

This course will show architectural patterns and styles that create a system that is resilient when failures occur. And when load and traffic increases are scalable horizontally on-demand as required.

I've developed this course based on my over two decades of experience designing and developing business systems in distribution, transportation, manufacturing, and accounting.

Table of Contents

Course Overview

  • Course Introduction
  • Prerequisites
  • Setup

Boundaries

  • Defining Boundaries
  • Physical & Logical Boundaries
  • 4+1 Architectural View Model

Architectural Styles

  • Monolith
  • Microservices
  • Message-Driven
  • Web-Queue-Worker

CQRS

  • CQS
  • Commands & Queries
  • Task-Based UI

Vertial Slices

  • Feature Driven
  • Organization
  • Dependencies
  • Pipes & Filters

Messaging

  • Message Types
  • Events
  • Queues & Topics
  • Competing Consumers
  • Outbox Pattern
  • Idempotent Consumers
  • Event Choreography
  • Orchestration
  • Compensating Actions
  • Reference-Based Messaging
  • Priority

UI

  • UI Composition
  • Backend for Frontend

Caching

  • Write-Through
  • Cache-Aside
  • Distributed
  • Failover
  • Event Carried State Transfer

Event Sourcing

  • Aggregates
  • Projections
  • Versioning
  • Snapshots

Monolith to Services

  • Strangler
  • Anti-corruption Layer
  • Sidecar

Infrastructure

  • Physical
  • Auto-scaling
  • Load Leveling
  • Metrics
  • Logging
  • Distributed Tracing
@thanhauco
Copy link

where are all the links? I am interested

@mandeepnanda
Copy link

mandeepnanda commented Feb 4, 2022

How to get access to this course ? Please share details

@aa-infr
Copy link

aa-infr commented Mar 4, 2023

Where can I find the video or document of this course?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment