Data Sources → Files & Integrations

Databases

Direct database sources — operational stores that don't emit events natively — replicated into CXOS via change-data-capture or scheduled extract.

High-Level Design

Operational database → CDC/extract → .NET Core microservices on Azure.

Data Source
Databases
Operational stores without native event emission
→
Ingestion
.NET Core CDC/Extract Connector
SQL Server/PostgreSQL CDC → Cxos.Ingestion.Client
→
Processing
.NET Core Stream Worker
Change-event normalization via Azure Event Hubs
→
Foundation
Data Lakehouse
Mirrored tables, kept in sync
→
Intelligence
.NET Core Analytics API
Joined with behavioral data
→
Activation
.NET Core Activation API
Downstream sync where applicable

💼 Business Context

  • Many core systems (inventory, pricing, legacy CRM) only exist as a database — there's no API or event stream to tap
  • Change-data-capture keeps CXOS's copy fresh without touching the source system's performance
  • Owned by Data Engineering, in partnership with whichever team owns the source database

🔌 Technical Overview

For databases that support it, a .NET Core connector uses native change-data-capture (SQL Server CDC, PostgreSQL logical replication) to stream row-level changes with minimal source-system load. Where CDC isn't available, a scheduled .NET Core extract job (Azure Functions Timer, using Dapper) pulls incremental changes via a watermark column. Both paths normalize through Cxos.Ingestion.Client.

Supported Sources

SQL Server (CDC) PostgreSQL (logical replication) MySQL (binlog) Scheduled extract (any JDBC/ODBC source)

💾 Sample Change Event

{
  "event": "row_updated",
  "event_id": "b9c4d2e1-3a7f-4b8c-9d1e-5c2a8f0b6e91",
  "timestamp": "2026-08-01T09:00:12Z",
  "context": { "channel": "database", "source": "inventory_db", "table": "product_stock" },
  "properties": { "sku": "sku-1029", "warehouse": "PUN-01", "quantity_on_hand": 42 }
}

🔗 Integration Points

  • Native CDC (SQL Server Change Data Capture, PostgreSQL logical replication) where supported
  • Scheduled watermark-based extract (.NET Core + Dapper, Azure Functions Timer) as a fallback
  • Cxos.Ingestion.Client NuGet package
  • Azure Event Hubs — change-event stream consumed by the Stream Worker

🧰 Services Consumed

  • Owning microservice — Cxos.Connectors.Cdc (see the Full Application Service Map)
  • No dedicated database — stateless connector (see Platform Connectors above)

⚠️ Non-Functional Considerations

  • Scale: CDC is designed to add minimal read load to the source database; extract jobs are rate-limited to protect OLTP performance
  • Latency: CDC-based sync runs in near-real-time (seconds to low minutes); watermark extracts typically run every 15-60 minutes
  • Reliability: extract jobs track the last-processed watermark to resume safely; CDC connectors track replication log position
  • Security/Privacy: database credentials are stored in Azure Key Vault with least-privilege read-only accounts; sensitive columns are excluded at configuration time

🎯 Enterprise Example

A retailer's legacy inventory database has no API. A CDC connector streams stock-level changes into CXOS in near-real-time, letting the Activation API suppress "back in stock" email triggers for SKUs that CDC shows were restocked and immediately sold out again — avoiding a wave of complaints from a stale batch-only inventory feed.

← Back to Files & Integrations