The AppointMe blog

Notes on building .NET SaaS

Architecture deep-dives from the team behind AppointMe — the patterns we reach for when building a real modular-monolith product, written up the way we'd want to read them.

How does your domain know your user?

“The current user” is really three questions in a trench coat. Splitting it into two clean abstractions — identity (who you are) and principal (what you can do) — keeps authorization and business rules from tangling together.

Read part 1 →

Two resolvers, four entry points

How that clean handler signature actually gets fed: two lazy resolvers, an ambient AsyncLocal holder, and four framework seams — ASP.NET Core, Wolverine, Hangfire and domain events — wired so no handler ever knows the difference.

Read part 2 →