Request a Demo
Platform Infrastructure

Integration Bus

The API gateway, event broker, and data integration layer for the entire Civic platform — every module that communicates flows through this centralized integration fabric.

99.99%

Uptime SLA

<10ms

Gateway Latency

10K/s

Event Throughput

20+

Pre-Built Connectors

Purpose-Built for Canadian Municipalities

Ontario Compliant
MFIPPA Ready
AODA Accessible
Bilingual Support
Canadian Hosted
SOC 2 Aligned

How It Works

The identity journey, step by step

From first registration to golden record resolution — how a resident's identity evolves across the platform.

01

Configure External Connector

An IT administrator sets up a new MPAC property assessment data feed.

How it works

The admin opens the Integration Hub dashboard, selects the pre-built MPAC connector from the catalog, enters the endpoint URL and API credentials (stored encrypted in the credential vault), configures the field mapping between MPAC assessment fields and the platform's property data model, sets a nightly sync schedule via cron expression, and runs a test sync to validate connectivity and data mapping.

Step 1 of 5

Purpose & Scope

What this module owns

Clear ownership boundaries prevent duplication and ensure every capability has exactly one authoritative home.

Owns

12

Delegated to

4

Application business logic

consuming modules

Identity verification

civic-identity

Notification delivery

notification-engine

Audit logging

audit-trail

These capabilities are handled by dedicated modules and consumed via stable API contracts — keeping boundaries clean and ownership unambiguous.

Core Capabilities

What it does

5 capability groups comprising 10 discrete capabilities — each with API surface, business rules, and data ownership.

All API traffic routes through the gateway — single URL base for external consumers with path-based routing to internal microservices.

Unified Entry Point

All API traffic routes through gateway — single URL base for external consumers.

Routing

Path-based routing to internal microservices.

SSL Termination

TLS 1.3 termination at gateway; mutual TLS for high-security integrations.

CORS Management

Configurable CORS policies per API.

API key, OAuth 2.0, JWT bearer token, and HMAC signature authentication with per-consumer rate limits and progressive throttling.

Authentication

API key, OAuth 2.0 client credentials, JWT bearer token, HMAC signature.

Rate Limiting

Per-consumer rate limits (requests/minute, requests/day); burst allowance.

Throttling

Progressive throttling under load — degrade gracefully.

IP Allowlisting

Restrict API access by source IP range per consumer.

Transform payloads between formats (JSON, XML, CSV) with URL path versioning and deprecation lifecycle management.

Request/Response Transformation

Transform payloads between formats (JSON ↔ XML ↔ CSV).

API Versioning

URL path versioning (/v1/, /v2/) with deprecation notices and sunset headers.

Real-World Scenarios

Who uses this, and how

4 persona-driven scenarios showing how Integration Bus works in practice — from resident registration to privacy compliance.

IT Administrator

MPAC Property Assessment Sync

The municipality receives the annual MPAC property assessment data feed and needs to update property records across tax, planning, and GIS modules.

Steps

  1. 1MPAC delivers the assessment extract via the pre-built MPAC connector
  2. 2The ETL pipeline ingests the file, validates record formats, and normalizes addresses
  3. 3MDM matches incoming records against existing property records using roll number and fuzzy address matching
  4. 4Updated assessments are applied to golden records with MPAC as the authoritative source for assessment values
  5. 5The event bus publishes property.assessment.updated for each changed record
  6. 6Property Tax, Planning, and GIS modules consume the events and update their local data

Outcome

One data feed automatically updates property records across the entire platform. No manual data re-entry, no point-to-point integrations between modules.

View scenario

Operations Staff

External System Outage Recovery

Canada Post's address validation API goes down during a high-volume permit application period.

Steps

  1. 1The Integration Bus detects consecutive failures from the Canada Post connector
  2. 2Circuit breaker opens — requests are queued instead of failing immediately
  3. 3integration.connector_health_changed event fires; operations dashboard shows status 'degraded'
  4. 4Notification engine alerts operations staff via email and SMS
  5. 5Consuming modules receive fallback responses and continue with cached data where possible
  6. 6When Canada Post recovers, health check passes, circuit closes, and queued requests are replayed

Outcome

Zero cascading failures to the permit application process. Residents experience brief delays on address validation but can still submit applications. Full recovery is automatic.

View scenario

Finance Manager

Cross-System Financial Reconciliation

The finance team needs real-time visibility into payments flowing between the platform, the bank, CRA, and the ERP system.

Steps

  1. 1Payment Engine publishes payment.completed events to the Integration Bus
  2. 2The Integration Bus routes events to the ERP connector for GL posting
  3. 3The banking connector receives settlement files and publishes settlement.matched events
  4. 4CDC captures changes in the ERP's GL tables and syncs back to the platform's financial dashboard
  5. 5Monthly CRA remittance files are generated via the CRA connector and submitted automatically
  6. 6The integration dashboard provides real-time visibility into all data flows with latency and error metrics

Outcome

Finance has a single pane of glass for all financial integrations. Data flows automatically between systems with full audit trail and error alerting.

View scenario

Data Analyst

Legacy System Migration (AMANDA → Permits)

The municipality is migrating from AMANDA to the new Licences & Permits module and needs to bring over 15 years of permit history.

Steps

  1. 1Data analyst configures the AMANDA connector with the legacy database credentials
  2. 2A multi-stage ETL pipeline is built: extract permits → transform data types → normalize addresses → map status codes → deduplicate applicants
  3. 3MDM links legacy applicant records to existing citizen records using fuzzy matching
  4. 4Pipeline runs in batches of 100,000 rows with progress tracking and error reporting
  5. 5Row-level errors (invalid dates, missing fields) are captured in the error report for manual review
  6. 6Successful records are loaded into the permits module with full history preserved

Outcome

15 years of permit history migrated with 99.5% automatic success rate. Error records are flagged for staff review with clear explanations of what needs fixing.

View scenario

Internal Architecture

How it's built

4 architectural layers comprising 24 components — from API gateway to data quality engine.

4 layers · 24 total components

Integration Bus

Every module owns a single bounded context, exposes stable APIs, and can be composed into any Civic product — that's the architecture that scales.

Krutik Parikh

Creator of Civic

Data Model

Entity Architecture

5 entities with 5 relationships — the authoritative schema for this bounded context.

Entities

Select an entity to explore its fields and relationships

API Surface

Integration Endpoints

14 RESTful endpoints across 4 resource groups — plus 5 domain events for async integration.

|
GET

/api/v1/gateway/health

Gateway health status

GET

/api/v1/gateway/consumers

List API consumers

POST

/api/v1/gateway/consumers

Register new API consumer

GET

/api/v1/gateway/metrics

API usage metrics

Technical Specifications

Performance, Compliance & Configuration

Availability

Target99.99% — integration bus failure cascades to all modules

Gateway Latency

Target< 10ms added latency for gateway routing

Event Throughput

Target10,000 events/second sustained

Event Delivery

TargetAt-least-once guaranteed; 99.99% delivery within 5 seconds

Webhook Delivery

Target99.9% delivery within 1 minute; retries over 24 hours

Pipeline Processing

Target100,000 rows/minute for ETL pipelines

Dead Letter Queue

TargetRetain failed messages for 30 days

API Documentation

TargetAuto-generated OpenAPI 3.1 documentation for all endpoints

FAQ

Frequently Asked Questions

Ready to Integrate

Build on Integration Bus

Request an architecture brief, integration guide, or live demo environment for your team.