Skip to content
CWChris Woody
Woodruff
  • Home
  • Services
    • Fractional Architect
    • Expert Witness
    • Micro-Consulting
    • Project-Based Contracts
    • Agentic Developer Relations
    • Advisory & Board Roles
  • Portfolio
  • Press & Media
  • Blog & Insights
  • Training
  • Network
    • Simplicity-First↗
    • Agentic Developer Relations↗
  • About
Let's work →
Category

Patterns

18 articles.

AllRust 53Genetic Algorithms 36EF Core 34htmx 22Terraform 22Patterns 18HTTP & REST 14Network Programming 13Blog 11Business & Software 8Simplicity-First 2AI 1C# 1Developer Experience 1Fun Tech 1Network Programming 1Speaking 1
PatternsFeb 27, 20265 min read

Fencing Tokens and Generation Clock in .NET: Stop Zombie Leaders From Writing

Leader election and leases answer a comforting question: who should be in charge right now. They do not fully answer the dangerous question: who can still write right now. A node can lose its lease…

PatternsFeb 7, 20265 min read

Lease Pattern in .NET: A Lock With an Expiration Date That Saves Your Data

Indefinite locks belong to a world where processes never crash and networks never split. That world does not exist. In a distributed system, “I hold the lock” can mean…

PatternsFeb 4, 20264 min read

Leader Election in .NET: Picking One Boss Without Creating Two

If your service runs on more than one node and still has a single instance assumption, you already have leader election. You just do not have it on purpose. Leader…

PatternsJan 29, 20265 min read

Distributed System Pattern: Leader and Followers in .NET - One Decision Maker, Many Replicas, Fewer Outages

Distributed systems rarely fail because you picked the wrong cloud service. They fail because two nodes believe they are in charge, both act, and both are “correct” from…

PatternsJan 29, 20264 min read

Patterns of Distributed Systems in C# and .NET: A New Series for People Who Ship Real Systems

Distributed systems do not fail because you missed a feature. They fail because responsibility is unclear. Two nodes act, both think they are right, and your data…

PatternsJan 19, 20266 min read

Enterprise Patterns for ASP.NET Core Minimal API: Data Transfer Object Pattern

Your domain model exists to protect your business rules. Your API exists to protect your clients. When you expose EF Core entities directly from your ASP.NET Core…

PatternsJan 11, 20267 min read

Enterprise Patterns for ASP.NET Core: Front Controller and MVC Pattern

If every controller in your system does its own authentication, logging, and error handling, you do not have an architecture. You have a crowd of small frameworks…

PatternsJan 8, 20266 min read

Enterprise Patterns for ASP.NET Core Minimal API: Lazy Load Pattern

If a single endpoint pulls half your database just to render a small card on a mobile screen, your problem is not the database. Your problem is that you are afraid to…

PatternsJan 6, 20265 min read

Enterprise Patterns for ASP.NET Core Minimal API: Identity Map Pattern

If one customer quietly turns into three different in-memory objects during a single request, your domain is already lying to you. You see it when: - Different parts of…

PatternsDec 30, 20256 min read

Enterprise Patterns for ASP.NET Core Minimal API: Unit of Work Pattern

If a single business operation calls SaveChangesAsync three times, you do not have a transaction. You have a sequence of partial commits that you hope never fails in the…

PatternsDec 29, 20257 min read

Enterprise Patterns for ASP.NET Core Minimal API: Repository Pattern

If DbContext shows up in every corner of your codebase, you do not have a domain model. You have a thin layer of LINQ wrapped in HTTP. You see it when: - Minimal API…

PatternsDec 19, 20257 min read

Enterprise Patterns for ASP.NET Core Minimal API: Data Mapper Pattern

If every interesting class in your system secretly knows a connection string, your domain is not a model. It is a thin layer of code on top of a data access layer. You…

PatternsDec 15, 20255 min read

Enterprise Patterns for ASP.NET Core Minimal API: Active Record Pattern

Sometimes, your domain is really just rows in a table. You have a Customers table with Id, Email, and CreditLimit. You load a row, tweak a field, and write it back. That…

PatternsDec 2, 20255 min read

Enterprise Patterns for ASP.NET Core Minimal API: Service Layer Pattern - Making HTTP a Client, Not the Boss

Open a typical ASP.NET Core project, and you will often see the same shape: - Controllers that validate input, construct entities and call several repositories - Direct…

PatternsDec 1, 20255 min read

Enterprise Patterns for ASP.NET Core Minimal API: Domain Model Pattern - When Your Core Rules Deserve Their Own Gravity

Look at a typical enterprise ASP.NET Core application, and you often see the same pattern: - Controllers validating requests, calculating totals, and applying discounts…

PatternsNov 29, 20256 min read

Enterprise Patterns for ASP.NET Core Minimal API: Transaction Script Pattern - The Shortcut That Quietly Reshapes Your System

Picture this. Product wants a minor discount tweak: if an order total is below 100, no discount. You open an endpoint, add a conditional, save and push. Ten minutes, job…

PatternsNov 28, 202510 min read

Enterprise Patterns, Real Code: Implementing Fowler’s Ideas in C#

Most enterprise systems already use patterns from Martin Fowler’s Patterns of Enterprise Application Architecture. The twist is that many teams use them without naming…

PatternsNov 28, 20256 min read

Stop Letting Your Controllers Talk to SQL: Layered Architecture in ASP.NET Core

Walk into almost any long-lived enterprise codebase, and you will find the same pattern: - Controllers that know about routing, JSON, SQL, and domain rules -…

CWChris Woody
Woodruff

Fractional Architect · Strategic Advisor · Expert Witness

  • LinkedIn
  • GitHub
  • YouTube
  • Bluesky
  • Mastodon
  • RSS

Services

  • Fractional Architect
  • Expert Witness
  • Micro-Consulting
  • Project-Based Contracts
  • Agentic Developer Relations
  • Advisory & Board Roles

Navigate

  • Home
  • Portfolio
  • Press & Media
  • Blog & Insights
  • Training
  • About
  • Contact

Network

  • Simplicity-First ↗
  • Agentic Developer Relations ↗

Contact

  • chris@woodruff.dev
  • +1 616.724.6885
  • Wyoming, MI 49418

© 2026 Christopher Woodruff. All rights reserved.

Download CV