Ingestion Layer → Client SDKs

Mobile SDK

Native iOS (Swift) and Android (Kotlin) client libraries, plus a React Native/Flutter wrapper, sharing the same event contract as the Web SDK.

High-Level Design

Mobile SDK carries the same contract into native app environments.

Data Source
Mobile App
iOS/Android app calling Cxos.track()
→
Ingestion
Mobile SDK (Swift / Kotlin)
Offline-queued wrapper around Cxos.Ingestion.Client
→
Processing
.NET Core Ingestion API
Azure API Management → validation → Azure Event Hubs
→
Foundation
Data Lakehouse
Raw event zone (Azure Data Lake Storage Gen2)
→
Intelligence
.NET Core Analytics API
Engagement & retention analysis
→
Activation
.NET Core Activation API
Push notification targeting

💼 Business Context

  • Mobile is often the highest-engagement, highest-LTV channel for app-first businesses — instrumenting it well is a direct revenue lever
  • Push-notification and in-app personalization use cases depend entirely on Mobile SDK data being complete and timely
  • Owned by Mobile Engineering; requires app-store release cycles to update, unlike the Web SDK

🔌 Technical Overview

The Mobile SDK ships as native Swift (iOS) and Kotlin (Android) packages, with React Native and Flutter wrappers on top, all generated from the same contract as Cxos.Ingestion.Client. It auto-instruments screen views and app lifecycle events, persists an offline event queue (SQLite) for connectivity gaps, and syncs to Azure API Management when the device is online. Push token registration is a first-class event so the Activation API can target the device directly.

Auto-Captured

app_opened screen_view app_backgrounded push_token_registered

💾 SDK Initialization (Swift)

import CxosSDK

Cxos.initialize(
  writeKey: "wk_live_9f21ac",
  consentRequired: true
)

Cxos.track("product_viewed", properties: [
  "product_id": "sku-1029",
  "price": 2499
])

🔗 Integration Points

  • Native Swift / Kotlin packages + React Native / Flutter wrappers
  • Local SQLite-backed offline event queue with a Polly-equivalent retry policy on sync
  • Azure API Management — HTTPS ingress once connectivity is available
  • Push notification token registration feeding the Activation API's real-time channel

🧰 Services Consumed

⚠️ Non-Functional Considerations

  • Scale: batched sync reduces battery/network impact on the device
  • Latency: online devices sync within seconds; offline devices flush on reconnect
  • Reliability: offline queue survives app kills/restarts; bounded size with oldest-event eviction to avoid unbounded growth
  • Security/Privacy: consent state is checked before the SDK initializes any tracking, including crash/performance telemetry

🎯 Enterprise Example

A travel app instruments the Mobile SDK across its booking flow. When a user abandons a booking mid-flow while offline (e.g., in-flight), the event queues locally and syncs on landing — letting the Activation API trigger a timely 'complete your booking' push notification instead of losing the signal entirely.

← Back to Client SDKs