System Landscape
The system landscape shows all systems and people involved in the PSI ecosystem at the highest zoom level (C4 Level 1).
System Landscape Diagram
System Context Diagram
Systems Overview
PSI System
The core platform. A modular toolkit built around Structures (content types like Questions, Topics, Profiles) and Features (plugins that extend structures with widgets, callbacks, and data). Data is partitioned into Silos -- one per partner broadcaster.
- Source: psi-product
- License: Apache 2.0
- Tech Stack: Expo (React Native for Web) + Hono/Firebase Functions + Firebase RTDB
Broadcaster System
The existing web platform of a public media broadcaster. PSI is embedded into broadcaster pages via:
- Direct integration: adding the
psi.jsscript to page templates - Content Proxy: a reverse proxy that rewrites pages to inject PSI scripts (for demos without modifying the broadcaster's site)
Identity Provider
An OpenID Connect (OIDC) identity provider used for Single Sign-On. Different partners use different providers:
| Partner | Provider |
|---|---|
| ZDF | Keycloak (integration + production environments) |
| CBC | Azure AD B2C (CBC, CBC International) |
| Radio-Canada | Azure AD B2C (RC, RC International) |
| RTBF | RTBF Login (login.rtbf.be) |
| KRO-NCRV/NPO | NPO ID (npoid-sandbox.npoid-dev.nl) |
| SRG SSR | SRG SSR Account (account-int.srgssr.ch) |
| Default | Google Sign-In (via Firebase Auth) |
Firebase Platform
Google Firebase provides several services to PSI:
| Service | Purpose |
|---|---|
| Firebase Auth | User authentication and custom token management |
| Realtime Database | Primary data store (NoSQL JSON, real-time sync) |
| Cloud Functions | Serverless backend hosting |
| Hosting | Static frontend hosting |
| Storage | User-uploaded file storage |
External AI Services
PSI uses a two-pass AI moderation system:
- Light model (OpenAI gpt-4o-mini): screens all incoming comments
- Heavy model (OpenAI gpt-4o): re-evaluates comments flagged by the light model
- Perspective API: provides toxicity scores as an additional signal
Supporting Services
| Service | Purpose |
|---|---|
| Email Service | Notification and verification emails (Postmark, SendGrid, or SMTP) |
| Sentry | Error monitoring and performance tracking (client + server) |
| BigQuery | Event logging and analytics dashboards |
| Translation Service | Multi-language comment translation (DeepL, TextShuttle, or SRG SSR enterprise API) |
| Bluesky / AT Protocol | Decentralized social network integration for the moderation service |
| Google Cloud Logging | Structured logging from server; feeds BigQuery via log sinks |
Communication Patterns
| Pattern | Used For |
|---|---|
| REST/JSON over HTTPS | Frontend-to-backend API calls (/api/{moduleId}/{functionId}) |
| Firebase SDK (WebSocket) | Real-time data sync between client and Firebase RTDB |
| OIDC redirects | SSO authentication flows |
| HTTPS webhooks | Moderation service callbacks |
Next Level
Zoom into the Container View to see the internal structure of the PSI system.