Skip to content

Integration Point Mapping

Overview

This document provides a comprehensive mapping of all external service integrations within the Playcast platform, including authentication flows, API contracts, and standardization opportunities. The platform integrates with multiple external services to provide authentication, social features, analytics, error tracking, and cloud infrastructure.

Authentication Integrations

Clerk Authentication Service

Purpose: Primary identity and authentication provider Implementation: Centralized across web and desktop applications Integration Points: - Marketing website (apps/marketing/) - Host application (apps/host/host-frontend/) - Realtime API authentication middleware (apps/realtime-api/src/api/middleware/authMiddleware.ts)

Authentication Flow: 1. Client applications initialize ClerkProvider with environment-specific public keys 2. JWT tokens are issued by Clerk and validated server-side using RSA public keys 3. Token validation includes role-based access control and email domain verification 4. Development mode supports bypass authentication for local development

API Contracts: - Public Keys: Environment-specific Clerk public keys for JWT validation - Token Format: RS256-signed JWT tokens with user metadata - Claims: Standard JWT claims plus custom metadata (roles, email, phone, avatar) - Endpoints: Clerk-hosted authentication flows with custom redirect URLs

Configuration:

// Environment-specific configuration
CLERK_PUBLIC_KEY: "pk_test_..." // Development
CLERK_PUBLIC_KEY: "pk_live_..." // Production

Standardization Opportunities: - Extract common Clerk configuration into shared library - Standardize token validation logic across services - Create unified authentication wrapper component

Social Platform Integrations

Discord Bot Integration

Purpose: Community engagement and stream notifications Implementation: Standalone Discord bot service (apps/bots/discordBot/) Integration Points: - Discord API via discord.js library - OAuth2 authorization flow for server invitations - Webhook management for notifications - Command handling system

Authentication Flow: 1. Bot uses Discord Bot Token for API authentication 2. OAuth2 flow for server invitations with specific permissions 3. Guild-based permission management 4. Audit log tracking for bot additions

API Contracts: - Discord API: REST API and Gateway WebSocket connections - Bot Token: Server-to-server authentication - OAuth2 Scopes: bot, identify, guilds - Permissions: Webhook management, message sending, guild access

Configuration:

// Environment variables
DISCORD_BOT_TOKEN: string
DISCORD_CLIENT_SECRET: string
DISCORD_CLIENT_ID: string // Environment-specific

Key Features: - Automatic DM to users who add the bot - Slash command system (/pc-announce) - Guild event handling (join/leave) - Integration with internal event system

Twitch Bot Integration

Purpose: Stream chat integration and notifications Implementation: Standalone Twitch bot service (apps/bots/twitchBot/) Integration Points: - Twitch IRC via tmi.js library - Twitch API for authentication and channel management - OAuth2 refresh token flow - Channel assignment and load balancing

Authentication Flow: 1. OAuth2 refresh token for API access 2. IRC authentication using OAuth token 3. Token refresh management with automatic retry 4. Channel-specific authentication and moderation

API Contracts: - Twitch IRC: TMI (Twitch Messaging Interface) protocol - Twitch API: REST API for user and channel data - OAuth2: Refresh token flow for long-lived access - Bot Commands: Custom command system with role-based permissions

Configuration:

// Environment variables
CLIENT_SECRET: string
BOT_REFRESH_TOKEN: string
BOT_NAME: string

Key Features: - Multi-channel support with load balancing - Command handling system - Event-driven notifications (stream start/end) - Automatic reconnection and error recovery

Steam Integration

Purpose: Game library and metadata integration Implementation: Tools and utilities (tools/Steam/, pipeline scripts) Integration Points: - Steam Web API for game metadata - Steam CLI tools for game management - Game installation and management scripts

API Contracts: - Steam Web API: REST API for game data and user libraries - Steam CLI: Command-line interface for game operations - Game Metadata: Title, artwork, system requirements

Configuration:

// Steam API integration
steam-cli: CLI management tool
steam-games: Game list checking
steam-install: Automated game installation

Analytics and Monitoring Integrations

Google Analytics 4

Purpose: User behavior tracking and analytics Implementation: Analytics library (libs/Analytics/) Integration Points: - React GA4 integration - Custom event tracking system - Server-side fallback for blocked requests - Cross-application analytics consistency

Authentication Flow: 1. GA4 Measurement ID for client-side tracking 2. Server-side tracking via Measurement Protocol 3. Automatic fallback when client-side tracking is blocked

API Contracts: - GA4 Measurement Protocol: Server-side event tracking - gtag API: Client-side event tracking - Custom Events: Playcast-specific event schema - User Identification: Persistent user ID tracking

Configuration:

GA_TRACKING_ID: "G-GPC7SPLDR2"

Key Features: - Automatic ad-blocker detection and fallback - Custom event schema with version tracking - Debug mode for development environments - Cross-platform user tracking

Sentry Error Tracking

Purpose: Error monitoring and performance tracking Implementation: Integrated across all client applications Integration Points: - React applications error boundary integration - Performance monitoring and tracing - Release tracking and environment separation - Custom error context and user identification

Authentication Flow: 1. DSN-based authentication for error reporting 2. Release-based error tracking 3. Environment-specific error filtering

API Contracts: - Sentry DSN: Project-specific error reporting endpoint - Release Tracking: Version-based error correlation - Performance Monitoring: Transaction and span tracking - User Context: User identification for error correlation

Configuration:

// Sentry configuration
dsn: config.SENTRY_DSN
release: constants.VERSION
environment: constants.ENVIRONMENT

Key Features: - Browser and React error tracking - Performance monitoring with distributed tracing - Session replay for error reproduction - Custom error context and tags

Cloud Infrastructure Integrations

Amazon Web Services (AWS)

Purpose: Cloud infrastructure and services Implementation: Infrastructure as Code via Pulumi (newpipelines/infra/) Integration Points: - ECS for container orchestration - VPC for network isolation - Application Load Balancer for traffic distribution - DynamoDB for NoSQL data storage - S3 for file storage and CDN - ElastiCache Redis for caching and session storage

Authentication Flow: 1. IAM roles and policies for service authentication 2. AWS SDK integration with automatic credential management 3. Cross-service authentication via IAM roles

API Contracts: - ECS: Container orchestration and service management - DynamoDB: NoSQL database operations - S3: Object storage and CloudFront CDN - ElastiCache: Redis cluster management - ALB: Load balancing and SSL termination

Configuration:

// AWS service configuration
services: EcsServiceConfig[]
vpc: VPC infrastructure
redis: ElastiCache cluster
dynamodb: DynamoDB tables
s3: S3 buckets with CloudFront

Key Services: - ECS Services: Discord bot, Twitch bot, Realtime API - DynamoDB: User data and session storage - S3 + CloudFront: Static asset delivery and file uploads - ElastiCache Redis: Session storage and caching - VPC: Network isolation and security groups

Redis Integration

Purpose: Caching, session storage, and inter-service communication Implementation: Shared across multiple services Integration Points: - Bot services for state management - Realtime API for session storage - Cross-service event communication - Channel assignment and load balancing

Authentication Flow: 1. Username/password authentication 2. Connection pooling and automatic reconnection 3. Keyspace isolation via prefixes

API Contracts: - Redis Protocol: Standard Redis commands and data structures - Pub/Sub: Event-driven communication between services - Key Prefixes: Service-specific keyspace isolation - Connection Management: Automatic reconnection and error handling

Configuration:

// Redis configuration
REDIS_HOST: string
REDIS_PORT: number
REDIS_USERNAME: string
REDIS_PASSWORD: string
keyPrefix: string // Service-specific

Communication Protocols

WebSocket Integration

Purpose: Real-time bidirectional communication Implementation: Realtime API WebSocket server Integration Points: - Client applications for real-time updates - Game session state synchronization - Peer-to-peer connection coordination - Event broadcasting system

Authentication Flow: 1. JWT token validation on WebSocket connection 2. Session-based connection management 3. Role-based message filtering

API Contracts: - WebSocket Protocol: Custom message format and event system - Authentication: JWT token validation - Message Types: Typed message system with validation - Event System: Pub/sub pattern for real-time updates

WebRTC Integration

Purpose: Peer-to-peer media streaming Implementation: Peer library (libs/Peer/) Integration Points: - Direct peer-to-peer connections - Media stream handling - ICE candidate exchange - Connection state management

API Contracts: - WebRTC Protocol: Standard WebRTC signaling and media - Signaling: WebSocket-based signaling server - STUN/TURN: NAT traversal and relay servers - Media Constraints: Audio/video configuration

Development and Deployment Integrations

GitHub Integration

Purpose: Source code management and CI/CD Implementation: GitHub Actions workflows (.github/workflows/) Integration Points: - Automated testing and building - Container image building and publishing - Infrastructure deployment via Pulumi - Release management and versioning

Docker Integration

Purpose: Application containerization Implementation: Multi-service Docker setup Integration Points: - Service containerization - Container registry (ECR) - ECS deployment - Development environment consistency

Integration Standardization Opportunities

Authentication Standardization

Current State: Authentication logic scattered across applications Opportunity: Create unified authentication library Benefits: - Consistent token validation across services - Centralized authentication configuration - Simplified onboarding for new services - Standardized error handling and retry logic

Proposed Structure:

libs/auth/
├── clerk/           # Clerk-specific integration
├── middleware/      # Express middleware
├── hooks/          # React authentication hooks
└── validation/     # Token validation utilities

External API Client Standardization

Current State: Direct API integrations in individual services Opportunity: Create standardized API client library Benefits: - Consistent error handling and retry logic - Centralized rate limiting and throttling - Standardized logging and monitoring - Simplified testing and mocking

Proposed Structure:

libs/external-apis/
├── discord/        # Discord API client
├── twitch/         # Twitch API client
├── steam/          # Steam API client
├── analytics/      # Analytics API client
└── common/         # Shared utilities

Configuration Management Standardization

Current State: Configuration scattered across multiple files Opportunity: Centralized configuration management Benefits: - Environment-specific configuration validation - Type-safe configuration access - Centralized secret management - Consistent configuration patterns

Proposed Structure:

libs/config/
├── environments/   # Environment-specific configs
├── validation/     # Configuration validation
├── secrets/        # Secret management
└── types/          # Configuration type definitions

Event System Standardization

Current State: Custom event systems in individual services Opportunity: Unified event-driven architecture Benefits: - Consistent event format and validation - Centralized event routing and filtering - Standardized event persistence and replay - Cross-service event communication

Proposed Structure:

libs/events/
├── types/          # Event type definitions
├── publishers/     # Event publishing utilities
├── subscribers/    # Event subscription utilities
└── middleware/     # Event processing middleware

Security Considerations

API Security

Current Implementation: - JWT token validation with RSA signatures - Role-based access control - Rate limiting and request validation - CORS configuration for cross-origin requests

Recommendations: - Implement API key rotation for external services - Add request signing for sensitive operations - Enhance rate limiting with user-based throttling - Implement comprehensive audit logging

Secret Management

Current Implementation: - Environment variables for sensitive configuration - Separate development and production credentials - Service-specific secret isolation

Recommendations: - Implement centralized secret management (AWS Secrets Manager) - Add secret rotation automation - Enhance secret access logging and monitoring - Implement least-privilege access patterns

Network Security

Current Implementation: - VPC isolation for cloud services - Security groups for network access control - HTTPS/WSS for encrypted communication - Private subnets for internal services

Recommendations: - Implement service mesh for inter-service communication - Add network-level monitoring and intrusion detection - Enhance certificate management and rotation - Implement zero-trust network architecture

Monitoring and Observability

Current Monitoring

Implemented: - Sentry for error tracking and performance monitoring - Google Analytics for user behavior tracking - CloudWatch for infrastructure monitoring - Custom health checks for service availability

Gaps: - Limited distributed tracing across services - Insufficient business metrics and KPIs - Manual alerting and incident response - Limited log aggregation and analysis

Distributed Tracing: - Implement OpenTelemetry for cross-service tracing - Add correlation IDs for request tracking - Enhance performance monitoring with detailed spans

Business Metrics: - Track user engagement and retention metrics - Monitor streaming quality and performance - Measure feature adoption and usage patterns

Alerting and Incident Response: - Implement automated alerting for critical issues - Create runbooks for common incident scenarios - Add automated recovery procedures where possible

Conclusion

The Playcast platform integrates with a comprehensive set of external services to provide authentication, social features, analytics, and cloud infrastructure. While the current integrations are functional, there are significant opportunities for standardization and improvement:

  1. Authentication Standardization: Centralize Clerk integration and token validation
  2. API Client Libraries: Create standardized clients for external services
  3. Configuration Management: Implement centralized, type-safe configuration
  4. Event System: Unify event-driven communication across services
  5. Security Enhancements: Improve secret management and network security
  6. Monitoring Improvements: Enhance observability and incident response

These improvements would reduce code duplication, improve maintainability, enhance security, and provide better operational visibility across the platform.