Komponierbare Middleware-Pipelines in TypeScript

Middleware gehört zu den Mustern, die jeder Backend-Entwickler ständig nutzt und fast niemand bewusst entwirft. Man erbt eine Express-App mit vierzig app.use()-Aufrufen oder ein Next.js-Projekt, in dem jede Route Auth und Logging anders reimplementiert, und akzeptiert das als den natürlichen Zustand der Dinge. Das muss nicht so sein.

Middleware als komponierbare, typisierte Primitive zu bauen — statt als aneinandergeflanschte Framework-Callbacks — macht Pipelines isoliert testbar, ohne Angst neu anordnbar und als Datenfluss lesbar statt als Seiteneffekte.