Event-Driven Notification Platform  ·  View 24 of 26  ·  6 · Assurance

Security Architecture — Trust Zones

Where the boundaries are, what crosses them, and where an attacker actually arrives.

Editable source SVG draw.io All views
Untrusted · internet
Untrusted · internet
Producer application
Producer application
Recipient device
Recipient device
Attacker
forged and replayed events
Attacker...
Perimeter · DMZ
Perimeter · DMZ
WAF and DDoS
per-tenant rps
WAF and DDoS...
Envoy Gateway
TLS 1.3 · mTLS
Envoy Gateway...
Token validation
Keycloak JWKS
Token validation...
Application · private
Application · private
Ingest API
tenant claim to topic ACL
Ingest API...
Decision plane
Istio mTLS · no egress
Decision plane...
Delivery workers
egress proxy only
Delivery workers...
Data · restricted
Data · restricted
Apache Kafka
SASL · ACL per tenant
Apache Kafka...
PostgreSQL
RLS · encrypted volumes
PostgreSQL...
PII Vault
per-tenant data key
PII Vault...
Audit Log
WORM · 7 y
Audit Log...
Identity and secrets
Identity and secrets
Keycloak
OIDC · client credentials
Keycloak...
HashiCorp Vault
1 h dynamic leases
HashiCorp Vault...
SPIRE
workload SVID
SPIRE...
HTTPS · mTLS
HTTPS · mTLS
replay rejected
replay rejected
WSS
WSS
TLS 1.3
TLS 1.3
JWT verify
JWT verify
tenant claim
tenant claim
SASL · ACL
SASL · ACL
mTLS · RLS
mTLS · RLS
scoped read
scoped read
SVID
SVID
Security Architecture — Trust Zones
Security Architecture — Trust Zones
External / third party
External / third party
Person or role
Person or role
Risk / gap
Risk / gap
Security / platform
Security / platform
Interface / broker
Interface / broker
Application we own
Application we own
Queue / topic
Queue / topic
Data store
Data store
synchronous
synchronous
failure / alternate
failure / alternate
event / async
event / async
Producers never hold a provider credential — the platform leases them per tenant from Vault. Events carry a subject reference rather than PII, so a compromised producer token leaks routing metadata and not contact data.
Producers never hold a provider credential — the platform leases them per tenant from Vault. Events carry a subject reference rather than PII, so a compromised producer token leaks routing metadata and not contact data.
v 1.0 · owner Security Architecture · date 2026-08
v 1.0 · owner Security Architecture · date 2026-08
Text is not SVG - cannot display

Decisions

  • Producers never hold a provider credential — the platform holds them per tenant in Vault on one-hour leases
  • Events carry a subject reference rather than PII, so a compromised producer token leaks routing metadata and not contact data
  • The tenant boundary is enforced twice: once at the API from the JWT claim, again at the broker by ACL

Attacker paths considered

  • Forged event: blocked by mTLS workload identity plus a JWT scoped to one tenant
  • Replayed event: idempotency_key deduplication makes a replay a no-op rather than a duplicate send
  • Stolen producer token: scoped to one tenant and one event type set, expires in 15 minutes, and cannot read any notification data
  • Malicious template: no arbitrary code in templates, output sanitised at authoring time

Controls

  • TLS 1.3 in transit, mesh mTLS between every internal hop, encrypted volumes and per-tenant data keys at rest
  • Delivery workers reach the internet only through an egress proxy with an allow-list of provider endpoints
  • Audit is write-once for 7 years under object lock, separate from application storage