All projectsProject05 / 07
Infrastructure

what does dukan actually solve?

Managing multi-tenant storefronts, product assets, and real-time orders at scale without inventory drift.

3 .NET 10 microservices (Clean Architecture + CQRS), chunked SkiaSharp → MinIO WebP processing, and SignalR/Redis Streams order push. Seamless merchant store management, low-latency customer checkout, and real-time order processing.

a look inside

Merchant console
Multi-tenancyOne deployment, many storefrontsTenant resolution happens at the gateway, so no service downstream has to remember whose data it is holding.
Service topology
Media pipelineChunked SkiaSharp to WebPProduct images are processed in chunks and pushed to MinIO.
Real timeOrders push, they don't pollSignalR over Redis Streams keeps every merchant console current without a polling loop, and keeps inventory from drifting between two open tabs.

three services, one tenant boundary

Clean Architecture with CQRS gave each service a hard edge. The cost was setup complexity up front; the payoff is that a change to the catalogue service cannot reach into orders.

The deployment — gateway, three services, PostgreSQL, Redis and MinIO.
Inside a service: Clean Architecture layers with CQRS handlers at the boundary.

The deployment — gateway, three services, PostgreSQL, Redis and MinIO.