The Subscription Service is responsible for managing which apps receive which data streams from user sessions. It handles subscription lifecycle, validates permissions, tracks history, and provides efficient queries for message routing.File: packages/cloud/src/services/session/subscription.service.ts
// Active subscriptions keyed by "sessionId:packageName"private subscriptions = new Map<string, Set<ExtendedStreamType>>();// History tracking for debuggingprivate history = new Map<string, SubscriptionHistory[]>();// Version tracking for concurrent updatesprivate subscriptionUpdateVersion = new Map<string, number>();
Get minimal set of languages needed for transcription:
Copy
getMinimalLanguageSubscriptions(sessionId: string): string[] { const languages = new Set<string>(); for (const [key, subs] of this.subscriptions.entries()) { if (!key.startsWith(sessionId + ":")) continue; for (const sub of subs) { const langInfo = parseLanguageStream(sub as string); if (langInfo?.language) { languages.add(langInfo.language); } } } return Array.from(languages);}