Skip to content

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 Landscape

System Context Diagram

System Context

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.js script 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:

  1. Light model (OpenAI gpt-4o-mini): screens all incoming comments
  2. Heavy model (OpenAI gpt-4o): re-evaluates comments flagged by the light model
  3. 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.