Skip to main content

Application Layer Services

All MCSP application services are stateless microservices deployed on Kubernetes. Session state is externalised to Redis; persistent state is held in Postgres. Services communicate synchronously via REST/gRPC for user-facing queries and asynchronously via Kafka for all stateful domain transitions.

User & Auth Service

OAuth2/JWT issuance, session management, 2FA, RBAC enforcement.

Upload Service

Presigned URL generation, upload session management, draft saving, pipeline trigger.

Content Service

Content metadata CRUD, visibility management, publication status, search indexing.

Playback Service

Manifest URL generation, entitlement checks, DRM pre-auth, resume position lookup.

Engagement Service

Likes, comments, shares, view counts, watch history, playlists, creator subscriptions.

Subscription Service

Subscription lifecycle state machine, plan management, billing coordination.

Notification Service

Push, email, and in-app notification dispatch for creator and viewer events.

Creator Dashboard

Analytics, revenue data, payout settings, audience insights.

Admin Control Plane

User lifecycle management, moderation workflow, residency policy administration, audit access.

Service Characteristics

ServiceRPS ClassStatePrimary DatabaseKafka Topics Produced
User & AuthHighStatelessPostgres + Redis
UploadMediumStatelessPostgres + Redismedia.upload.initiated
ContentHighStatelessPostgres + Elasticsearchmedia.published
PlaybackVery HighStatelessPostgres + Redis
EngagementVery HighStatelessPostgres + Redisuser.engagement.events, engagement.subscription.changed
SubscriptionMediumStatelessPostgres
NotificationMediumStatelessPostgres
Creator DashboardLow–MediumStatelessPostgres + TimescaleDB
Admin Control PlaneLowStatelessPostgres + Audit Store

Failure Isolation Principle

Each service is independently circuit-broken. A failure in the Recommendation engine, Notification Service, or Creator Dashboard must not degrade the Playback Service. All inter-service synchronous calls are wrapped in circuit breakers with configurable trip thresholds. The Playback Service has the highest availability requirement — it maintains a 3-replica minimum with a dedicated node pool.

Build docs developers (and LLMs) love