Data Sources → Customer Touchpoints

In-Store Kiosks

Self-service and point-of-sale kiosks physically located in stores, capturing in-person interactions like self-checkout, loyalty lookups, and product lookups.

High-Level Design

Kiosk client → offline queue → .NET Core microservices on Azure.

Touchpoint
In-Store Kiosk
Self-checkout, loyalty lookup, product lookup
Ingestion
.NET Core Kiosk Client + Ingestion API
Cxos.Ingestion.Client with local offline queue
Processing
.NET Core Stream Worker
Azure Event Hubs → session build, identity match
Foundation
Data Lakehouse
Unified with online transaction history
Intelligence
.NET Core Identity API
Loyalty ID resolution
Activation
.NET Core Activation API
Store ops dashboards, loyalty systems (Reverse ETL)

💼 Business Context

🔌 Technical Overview

The kiosk runs a .NET Core thin client (Blazor Hybrid or WPF) embedding the same Cxos.Ingestion.Client NuGet package used by every other touchpoint, so the contract never diverges between web, mobile, and in-store. Because store networks are less reliable than a data-center link, the client buffers events in a local SQLite queue and flushes to Azure API Management (→ the Ingestion API on AKS) via the package's built-in Polly retry policy. Sessions are anonymous until a loyalty card, phone number, or email is scanned or entered.

Typical Events

kiosk_session_started loyalty_scanned product_lookup self_checkout_completed payment_processed

💾 Sample Event Payload

{
  "event": "self_checkout_completed",
  "event_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "timestamp": "2026-08-01T14:05:33Z",
  "user_id": "cust_004821",
  "context": {
    "channel": "kiosk",
    "store_id": "store_0142",
    "kiosk_id": "kiosk_07"
  },
  "properties": {
    "order_id": "ord_55123",
    "total": 3499,
    "currency": "INR",
    "items": 4
  }
}

🔗 Integration Points

⚠️ Non-Functional Considerations

🎯 Enterprise Example

A grocery chain rolls out .NET Core kiosk clients across 400 stores, each carrying the same Cxos.Ingestion.Client package as the mobile app. Loyalty-scan events are stitched to the same customer profile through the Identity API, letting the kiosk surface a personalized coupon mid-checkout — increasing average basket size by 4.1% for enrolled loyalty members.

← Back to Customer Touchpoints