- 11
- 245 169
Drawing Boxes
United Kingdom
Приєднався 2 тра 2022
Software design, architecture and coding concepts explained in short animated presentations.
- Original background music recorded and produced by myself.
- Twemoji graphics made by Twitter and other contributors, licensed under CC-BY 4.0.
- Original background music recorded and produced by myself.
- Twemoji graphics made by Twitter and other contributors, licensed under CC-BY 4.0.
Boundaries & Encapsulation
Different boundaries in a software system come with different trade-offs to consider. Let's zoom out from functions to distributed systems and look at what encapsulation means at each level.
0:00 Intro - Drawing Boxes
0:19 Functions
1:02 Classes
1:25 Libraries / Packages
3:11 Services / Microservices
3:58 Distributed systems
5:10 Architecture
5:26 Related concepts
0:00 Intro - Drawing Boxes
0:19 Functions
1:02 Classes
1:25 Libraries / Packages
3:11 Services / Microservices
3:58 Distributed systems
5:10 Architecture
5:26 Related concepts
Переглядів: 2 635
Відео
Agile Manifesto (not fake agile)
Переглядів 1,7 тис.8 місяців тому
The original Agile Manifesto lays out 4 simple values: 0:00 Intro 0:30 Responding to change over following a plan 2:02 Customer collaboration over contract negotiation 3:23 Working software over comprehensive documentation 4:38 Individuals and interactions over processes and tools 5:25 Conway's Law It's not about sprints or standup meetings. agilemanifesto.org/
Events vs Commands: What's the difference?
Переглядів 4,2 тис.10 місяців тому
Message bus communication often uses Commands and Events. But, what's the difference between them? Aren't they both just messages? The difference is about grammar, intention, and also the direction of some different kinds of arrows... 0:00 Intro 0:18 What do the words mean? 0:34 When do they happen? 1:36 Who are they for? 2:53 Direction of control and dependency 4:19 Example third party provide...
Outbox Pattern: Fixing event failures in an event-driven architecture
Переглядів 8 тис.11 місяців тому
The Transactional Outbox Pattern ensures a message is always published to a message broker when making changes to a database, even if the message broker fails initially. This is essential for event-driven architecture to ensure consistency when other services are rebuilding state from your events. 0:00 Network failures 0:54 Atomic Transactions 2:00 Publishing the event 2:52 At-Least Once delive...
Conway’s Law: Why your architecture looks like your team structure
Переглядів 8 тис.Рік тому
The communication structures in your organisation influence your software architecture. We explore some examples of this and explain how it relates to Domain-Driven Design (DDD) and Microservices. 0:00 Definition 0:31 Layered teams example 2:04 Lifecycle teams example 3:07 Cross-functional teams & DDD 4:22 Inverse Conway Manoeuvre Conway's Law: www.melconway.com/Home/Conways_Law.html Inverse Ma...
Event Sourcing Explained
Переглядів 24 тис.Рік тому
What is Event Sourcing? Is it anything to do with CQRS and DDD? We explain the pros and cons compared to traditionally updating the current state in a database. We cover trade-offs with Eventual Consistency, problems with concurrency, and options to solve those with optimistic concurrency techniques. 0:00 Intro 0:40 Deleting 0:57 Analytics & Metrics 1:23 Concurrency 2:24 Calculating State 3:26 ...
Microservices vs Monolithic Architecture
Переглядів 19 тис.Рік тому
Microservices, a Modular Monolith, or a Big Ball of Mud. This video explains the pros and cons of choosing a distributed system over one big monolith (whether that's a nicely structured Modular Monolith, or just a jumble of spaghetti code). 00:00 Definition of Microservices 00:14 Monoliths 00:35 Big Ball of Mud 00:52 Modules 01:30 Microservices 02:17 Network Communication 02:59 Distributed Ball...
DDD Bounded Contexts & Subdomains
Переглядів 39 тис.Рік тому
Bounded Contexts, subdomains and strategic design from Domain-Driven Design explained. 0:00 Complex Systems 0:26 Ambiguous Language 1:26 Separating Contexts 2:06 Context Map 2:22 Types of Subdomains 3:11 Integrating Between Contexts
DDD Building Blocks
Переглядів 47 тис.Рік тому
Explaining Aggregate Roots, Domain Events, Entities, Value Objects and Repositories - the building blocks in Domain-Driven Design. 0:00 Building Blocks 0:18 Ubiquitous Language 0:54 Value Objects 1:41 Entities 2:22 Domain Events 2:51 Aggregates 3:39 Repositories
CQS and CQRS: Command Query Responsibility Segregation
Переглядів 29 тис.Рік тому
The CQS and CQRS design principles explained. 00:00 CQS: Command Query Separation 01:29 CQRS: Command Query Responsibility Segregation 2:10 Separating reads and writes 2:37 Scaling independently
Hexagonal, Onion & Clean Architecture
Переглядів 63 тис.2 роки тому
Three similar software architectures explained. 00:00 N-Tier Inversion 01:04 Hexagonal Architecture 01:50 Onion Architecture 02:58 Clean Architecture Hexagonal Architecture - alistair.cockburn.us/hexagonal-architecture/ Onion Architecture - jeffreypalermo.com/2008/07/the-onion-architecture-part-1/ Clean Architecture - blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html