Skip to content

Architecture

How the HVC platform fits together end-to-end.

System overview

Multi-tenancy

  • Each tenant is a Keycloak realm plus its own SQL database and subdomain ({domain}.my-hippo.io).
  • hvc-api resolves the active tenant from the request host/domain (MultiTenantConnectionInterceptor swaps the connection string) and scopes all data per tenant.
  • The admin API keeps the cross-tenant picture (tenants, meetings, billing) in the admin DB and provisions new tenants.

Authentication

Permissions come from the user's role; the API enforces them through the Authorizer (some views/actions are hidden for users without the right permission).

Call / meeting lifecycle

  1. A user creates an event (hvc-api).
  2. VmrCreationService assigns a Pexip VMR to the event.
  3. Participants join via the SignalR hub (initEvent / joinEvent) and the call runs on Pexip (WebRTC).
  4. Device peripherals (cameras, stethoscope) are driven over the hub.
  5. On completion, hvc-sinkapi ingests Pexip telemetry and finalizes the event (logs, eventInstances, admin Meetings), then notifies hvc-services.
  6. Recordings are pushed to blob storage by hvc-filePushApi and processed by hvc-services.

Released under the MIT License.