Digital Dance Studio — System Architecture
Complete logical architecture showing identity, profiles CQRS, content CQRS, annotations CQRS, event bus, and data stores
Clients
WPF
MAUI
Blazor
Shared .NET client library
API gateway (YARP)Routing, JWT validation, refresh signaling
Subscribes to user change
events for refresh signaling
Identity
IdentityAuth, groups
Own PG DB
Profiles
(CQRS)
ProfilesRead + write
Profile PG DB
Content
(CQRS)
CatalogWrite + read
Transcode worker (FFmpeg)
Media deliveryNginx
Catalog includes
video links
Catalog PG DB
SeaweedFS
Annotations
(CQRS)
AnnotationsWrite + read
Annotations PG DB
SeaweedFS
Metadata in PG
JSON in SeaweedFS
Analytics
Event bus — MassTransit / RabbitMQvideo.uploaded · video.liked · user.groups.changed · profile.updated · annotation.created · ...
Shared .NET contracts
DigitalDanceStudio.Shared.Contracts — messages, DTOs, interfaces
DigitalDanceStudio.Shared.Client — HTTP client, auth, retry, failover
Infrastructure
WireGuard
Portainer
Docker Compose
Prometheus
Grafana
Identity (isolated)
App services
Workers
Data stores
Gateway