Architecture

Platform

147 plug-and-play modules across three architectural layers — each module owns a single bounded context, exposes stable APIs, and can be composed into any Civic product.

50+

Products in Suite

120+

Municipal Modules

50+

Integration Points

100%

Ontario Compliance

The Architecture

Build products from composable modules

Every Civic product is an assembly of modules — not a monolithic application. This means municipalities get exactly the capabilities they need, nothing more, and can extend the platform incrementally.

Modules communicate through domain events on a shared event bus — loose coupling that enables independent deployment, scaling, and evolution without breaking downstream dependencies.

Key Facts

Module architecture at a glance

01

Bounded Context

Each module owns exactly one domain — no overlapping responsibilities, no hidden coupling between modules.

02

Versioned APIs

Every module exposes versioned REST/GraphQL endpoints with OpenAPI specs. Internal evolution without breaking consumers.

03

Three Layers

Platform (22) → Shared (19) → Domain (106). Clear dependency direction — upper layers never depend on lower layers.

Purpose-Built for Canadian Municipalities

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

Three Layers

A layered architecture built for composition

Every Civic product is assembled from modules across three architectural layers — each with a clear responsibility boundary.

Platform Infrastructure

Foundational services that every product depends on — identity, payments, GIS, workflow engine, AI/ML, integration bus, and more.

Example Modules

Civic IdentityPayment EngineWorkflow AutomationForms EngineGeospatial EngineAI / ML Engine

Shared Functional

Cross-cutting capabilities consumed by multiple domains — billing, inspections, work orders, property registry, asset registry, and facility booking.

Example Modules

Billing & InvoicingInspection EngineWork Order EngineProperty RegistryAsset RegistryFacility Booking

Domain

Specialised business logic for individual municipal domains — tax, utilities, recreation, elections, roads, fire, environmental monitoring, and 90+ more.

Example Modules

Tax Levy & Rate CalcBudget PreparationFire PreventionElection AdminPavement ConditionGHG & Energy
22

Platform Infrastructure

Foundational services that every product depends on

19

Shared Functional

Cross-cutting capabilities consumed by multiple domains

106

Domain

Specialised business logic for individual municipal domains

Design Principles

How every module is built

Six architectural principles that govern how modules are designed, built, and composed into products.

01

Single Responsibility

Each module owns exactly one bounded context with clear API boundaries. No overlapping ownership, no hidden dependencies.

02

Composable by Design

Modules snap together like building blocks. Any Civic product is simply a composition of modules configured for a specific use case.

03

Stable APIs

Every module exposes versioned REST/GraphQL APIs with OpenAPI specs. Internal modules evolve without breaking consumers.

04

Event-Driven

Modules communicate through domain events on a shared event bus. Loose coupling enables independent deployment and scaling.

05

Compliance-Native

FIPPA, MFIPPA, AODA, PSAB — compliance is architected in, not bolted on. Audit trails, encryption, and data residency are first-class concerns.

06

Zero Vendor Lock-In

Standard data formats, portable schemas, and open APIs. Every module can export its data in open formats at any time.

Full Catalogue

All 147 modules searchable & filterable

Browse the complete module catalogue. Filter by architectural layer, search by name or description, and explore modules with detailed showcase pages.

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

Krutik Parikh

Creator of Civic

Custom Architecture

Need a custom module?

Every municipality has unique requirements. If our existing 147 modules don't cover your specific need, we'll build one that does — following the same architecture patterns and compliance standards.