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.
💼 Business Context
- Bridges the physical store into the same customer profile as digital channels — key for true omnichannel measurement
- Enables loyalty-driven personalization at the point of physical interaction
- Owned jointly by Store Operations and Digital / CX teams
🔌 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
💾 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
Cxos.Ingestion.ClientNuGet package with local SQLite-backed offline queue- Azure API Management — ingress once store connectivity is available
- POS integration — payment confirmation correlated to the session
- Reverse ETL (.NET Core Activation API + Azure Functions) — store operations dashboards and loyalty systems
⚠️ Non-Functional Considerations
- Scale: thousands of stores, bursty peak-hour traffic per location — Ingestion API scales via AKS independent of any single store
- Latency: checkout flows need sub-second local response even if cloud sync lags
- Reliability: offline-first design — kiosk client functions during an outage and syncs once connectivity returns
- Security/Privacy: kiosks are shared physical devices — the client hard-clears the local session and queue on completion or timeout
🎯 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.