~/goldbarth $ whoami

Felix Wahl — .NET Backend Engineer focused on distributed systems — reliability, consistency, and the stuff nobody talks about until it breaks.

Notes from the work: reasoning behind technical decisions, half-baked thoughts, and what I'm currently building. Unpolished, mostly for my future self — public in case it helps someone. Some posts age badly. That's fine.

sketching out the next one — something around auth, caching, and modular architecture · reading project hail mary — andy weir

Projects

all projects →

Ingestor

Live

A .NET 10 import pipeline built around reliability: outbox pattern, strict domain state machine, idempotent processing, and a config-switchable dispatch strategy — every design decision focused on correctness and auditability.

.NET 10C#OpenTelemetryPostgresEF Core 10DockerASP.NET Core Minimal API

Writing

all writing →

What's missing

Thinking about what to build next — and why it's not another clean architecture project.

Chunk-based Batch Processing

Why Ingestor processes large import files in 500-line chunks instead of all-at-once — bounded blast radius, partial success semantics, and the tradeoffs that came with it.

Idempotency Key Strategy

Designing deterministic idempotency keys for an import pipeline — why SHA256 over file content, what the unique index enforces, and how HTTP clients benefit.

Outbox vs. Message Broker

Why Ingestor starts with a database-backed outbox instead of RabbitMQ — and what the switchable dispatcher pattern makes possible later.

Result Pattern over Exceptions

Why Ingestor uses a Result<T> type instead of exceptions at application boundaries — what it makes explicit, what it costs, and where exceptions still belong.

State Machine with Explicit Transitions

How an explicit domain state machine with nine states and an enumerated transition table prevents silent state corruption in a long-running pipeline.