Ingestion Layer
Collects events from every client and system, validates and enriches them at the edge, and streams them onward — with consent enforced before anything is stored.
💻 Client SDKs
Web SDK
TypeScript client library instrumenting web storefronts and apps.
Mobile SDK
Native iOS/Android libraries sharing the same event contract.
Server SDK
Backend library for IoT gateways, kiosks, and internal services.
How to Consume
Cxos.Ingestion.Api · Command
// @cxos/web-sdk, @cxos/mobile-sdk, and Cxos.Ingestion.Client (Server SDK)
// all wrap the same call:
Cxos.track("product_viewed", { sku: "sku-1029", price: 2499 });
// -> POST https://ingest.cxos.io/v1/events, batched and retried automatically
🌐 Edge Network
Global Points of Presence
Event Collection
The front door — receives every event before anything else happens.
Validation
Schema and contract checks immediately after collection.
Enrichment (Geo, Device, IP)
Adds location and device context before storage.
Consent Enforcement
Checks consent state before an event is allowed to proceed.
Queue & Retry
Absorbs bursts and outages between the edge and processing.
How to Consume
Cxos.Ingestion.Application · Command
// Internal pipeline stages — not called directly. Trace a request through them via // Application Insights using the correlation ID returned on every /v1/events call: X-Correlation-Id: 7e2a1c4b-9f3d-4e8a-b1c2-5a6e0d3f8b21
🔊 Streaming Ingestion
Redpanda (Kafka Compatible)
Kafka-API-compatible streaming backbone with lower operational overhead.
How to Consume
Cxos.Ingestion.Infrastructure · Command
// Consumers attach to the Event Hubs-compatible endpoint directly — // no CXOS-owned API in front of the stream itself: Endpoint=sb://cxos-events.servicebus.windows.net/;EntityPath=ingestion-accepted ConsumerGroup=cxos-processing-stream-worker
🔌 Connectors
Pre-built Connectors
Ready-to-configure integrations for common SaaS platforms.
Custom Connectors
Framework for building a new integration when none exists yet.
How to Consume
Cxos.Connectors.* (registry family) · Command
// Enable an existing pre-built connector via configuration:
POST /v1/connectors/enable
{ "connector": "Cxos.Connectors.HubSpot", "instance_id": "hs_prod", "auth_ref": "kv://hubspot-prod" }
// Scaffold a custom one from the shared IConnector template:
dotnet new cxos-connector -n AcmePartnerConnector
📡 Protocols Supported
HTTP / HTTPS
The default, universal protocol for SDK and connector traffic.
gRPC
High-throughput binary protocol for the highest-volume server callers.
Webhooks
Inbound pattern for platforms that push events to CXOS.
Batch Upload (S3, SFTP, API)
Path for large, scheduled data drops and historical exports.
How to Consume
Cxos.Ingestion.Api · Command
HTTP/HTTPS POST /v1/events (default, universal) gRPC cxos.ingestion.v1.Ingest/Track (highest-volume server callers) Webhooks inbound receiver per connector (platforms that push to CXOS) Batch Azure Blob Storage landing zone (S3/SFTP/API bulk drops)
🔌 Platform Connectors
The shared client libraries every SDK, connector, and downstream service builds on.
| Connector Package | Consumer |
|---|---|
Cxos.Ingestion.Client |
Every SDK, connector, and business-system integration in Data Sources |
Cxos.Connectors.* (registry family) |
Event Collection (Ingestion API) · Reverse ETL / CDP Sync callers |
@cxos/web-sdk |
Web / App Personalization · On-site Messages |
@cxos/mobile-sdk |
SMS / Push (Twilio, FCM) targeting |
Custom Connector Framework (IConnector) |
Any team extending the platform to a long-tail system |
The website SDK captures a 'Product Viewed' event and sends it to the Edge. The Edge validates, enriches it with location and device info, applies consent rules, and streams it in real-time.