Skip to content

Event Mesh

Executive Summary

Event Mesh defines the logical routing fabric for Algosure events. It connects Spring Modulith internal events, outbox-backed delivery, AIOS orchestration, notification triggers, analytics projections, integration events, and future external event channels.

Why This Exists

Algosure should not couple modules through hidden direct calls or shared database access. The Event Mesh gives source Domains a governed way to publish facts and lets consumers react without taking ownership of those facts.

Owner

The owner is the Chief Product Officer and Enterprise Architect.

Business Value

The Event Mesh supports cross-domain processes, AIOS coordination, analytics, notifications, integrations, auditability, and future replay without forcing premature infrastructure choices.

Mesh View

flowchart LR
    subgraph Publishers["Event Publishers"]
        Identity[Identity]
        Organization[Organization]
        Compliance[Compliance]
        Opportunity[Opportunity]
        Bid[Bid]
        Contract[Contract]
        Supplier[Supplier]
        Marketplace[Marketplace]
        Funding[Funding]
        Learning[Learning]
        Billing[Billing]
        Administration[Administration]
    end

    Mesh[Logical Event Mesh]

    subgraph Consumers["Event Consumers"]
        Process[Cross-Domain Process Coordination]
        AIOS[AIOS Event Orchestration]
        Notification[Notification Triggers]
        Analytics[Analytics Projections]
        Integration[Integration Event Boundary]
        Audit[Event Audit Trail]
    end

    Publishers --> Mesh
    Mesh --> Consumers

Mesh Responsibilities

Responsibility Meaning
Route events Deliver published facts to subscribed consumers.
Preserve metadata Carry tenant ID, organization ID, correlation ID, causation ID, event ID, event version, and source information.
Decouple modules Prevent consumers from depending on publisher repositories, database tables, or internal models.
Support reliability Align with outbox, retry, idempotency, dead-letter handling, and future replay needs.
Support observability Make event flow traceable for audit, debugging, and operational review.

Mesh Boundaries

Boundary Architecture Rule
Spring Modulith internal events Primary mechanism for internal module coordination in the Modulith.
Outbox boundary Future-safe delivery mechanism for reliable asynchronous publication.
Integration boundary External events are translated into or from domain-owned facts.
AIOS boundary AIOS consumes events to orchestrate work but does not own source facts.
Notification boundary Notification triggers are derived from events but do not determine source business state.
Analytics boundary Analytics projections consume events and remain downstream from operational ownership.

Non-Implementation Boundary

This document does not choose a broker, stream platform, queue topology, routing key format, transport protocol, or managed cloud service.