software-architecture
The essential design concepts I use when developing an evolvable, distributed system.
Read MoreContinuous Delivery with ATDD and Feature Flags
January 26, 2024
How can we continuously integrate small changes while practicing acceptance test-driven development?
Read MoreTDD and Testing Behavior
January 24, 2024
The importance of testing behavior when using test-driven development
Read MoreOrchestrate or Choreograph?
January 16, 2021
When is it appropriate to use centralized orchestration versus event-driven choreography?
Read MoreDomain vs Application Logic
December 6, 2020
When defining a business problem and planning its solution, keep the two conversations separate...
Read MoreCommands and Queries with a Message Broker
November 15, 2020
Modern message brokers provide many important benefits to a distributed system...
Read MoreClean Architecture and SOLID Cheat Sheets
November 1, 2020
Printable cheat sheets to help remember some of Uncle Bob's valuable contributions to the industry
Read MoreSystem Design Principles
March 31, 2019
After years of consulting, I find myself continually coming back to three basic principles of system design...
Read MoreCloud Services and Architectural Complexity
January 26, 2019
How do we manage the architectural complexity that inevitably arises from using cloud services?
Read More