> Markdown version of [/videos/747-challenges-for-omnichannel-applications-at-aldi-data-distribution-and-offline-capabilities](https://www.wearedevelopers.com/videos/747-challenges-for-omnichannel-applications-at-aldi-data-distribution-and-offline-capabilities). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Challenges for omnichannel applications at ALDI: Data distribution and offline capabilities Spotty store Wi-Fi threatened ALDI's omnichannel rollout. Learn how their engineers used the Transactional Outbox pattern and offline-first PWAs to guarantee flawless data synchronization in complete internet dead zones. - **Speakers:** Enrico La Torre, Renato Dompieri Beltrão - **Event:** World Congress 2023 - **Published:** October 6, 2023 - **Duration:** 30:48 - **URL:** https://www.wearedevelopers.com/videos/747-challenges-for-omnichannel-applications-at-aldi-data-distribution-and-offline-capabilities ## Summary ALDI's modernization toward omnichannel distribution—including click-and-collect and scan-and-go features—introduced widespread engineering challenges involving reliable data synchronization and continuous operations in internet-free store areas. To handle real-time product adjustments like localized price drops, the engineering team had to build robust architectural patterns that maintained data integrity across the distributed backend while ensuring continuous functionality for physical store devices. Ensuring downstream microservices receive vital product updates without data loss during network or pod failures is achieved using the Transactional Outbox pattern. By linking price updates and dispatch events into a single persistence transaction, a background worker can safely process and retry failed payload deliveries. To prevent spamming external consumers with unnecessary data drops across a 100,000-item catalog, the team implemented an optimization utilizing deterministic hashing. The system calculates and compares localized hash values for specific consumers in-memory, ensuring that downstream APIs only receive pushes when their distinctly requested subset of an article's large JSON model actually changes. Building for this "at-least-once" delivery model requires downstream consumers to gracefully handle duplicates, while primarily optimizing the data-flow orchestration for the cloud's happy path. On the client side, store employees fulfilling digital orders require uninterrupted workflows regardless of spotty warehouse Wi-Fi. ALDI solved this connectivity challenge using Progressive Web Apps (PWAs) integrated with fundamental Service Worker APIs. By leaning on the Cache API for static assets and IndexedDB as a persistent key-value store for offline product catalogs, the client functions seamlessly within physical dead zones. Workflows are sustained through the Background Sync API, which silently queues picker actions and syncs with the database once a connection is reestablished. When minor updates do occur—such as a single image or price alter—the app utilizes Push Notifications to surgically update only the relevant IndexedDB or Cache entry rather than initiating full, bandwidth-heavy list reloads. **Keywords:** omnichannel retail applications, data distribution architecture, transactional outbox pattern, deterministic hashing optimization, microservices data synchronization, at-least-once delivery, progressive web apps, service worker implementation, offline-first architecture, cache api management, indexeddb storage, background sync api, push notification integrations, in-memory event bus, cosmos db ## Chapters 1. **Adapting grocery distribution for omnichannel retail challenges** (00:00) — Integrating brick-and-mortar pricing systems with online pick-up applications requires robust data synchronization. 1. **Addressing message loss in naive distributed service architectures** (03:08) — Direct downstream pushing of price changes leads to data loss when network failures and application code restarts coincide. 1. **Implementing transaction outbox patterns for reliable data pushing** (05:08) — Persisting event actions alongside data changes ensures failed downstream updates can be successfully retried by background workers. 1. **Optimizing downstream data volume using deterministic hash values** (06:55) — Calculating hashes on consumer-specific data subsets prevents redundant payload delivery across the application network. 1. **Managing state recovery in memory based distributed environments** (09:47) — An import and export module setup using an in-memory event bus minimizes database roundtrips while retaining consistency upon restart. 1. **Overcoming network unreliability in grocery store picking applications** (12:38) — Limited internet access and concurrent multi-user packing workflows drive the adoption of progressive web applications over traditional mobile builds. 1. **Architecting offline experiences with service worker proxy models** (17:33) — Deploying background workers between the browser and server enables persistent operation and notification handling during network loss. 1. **Leveraging client persistence with storage and background sync** (20:12) — Integrating IndexedDB for structured product catalogs allows background sync routines to retry delayed network requests gracefully. 1. **Updating stored local catalogs via push notification streams** (24:23) — Utilizing push notification events to mutate individual IndexedDB records heavily minimizes bandwidth consumption for rapid price iterations. 1. **Selecting dependencies for message orchestration and web installations** (26:58) — Library choices for in-memory systems provide lightweight alternatives to complex choreographers while fulfilling required progressive web app conditions. ## Related Moments - [Achieving application reliability and offline accessibility](https://www.wearedevelopers.com/videos/289-pwas-in-2021) (from "PWAs in 2021") - [Global scale and operational footprint of Aldi](https://www.wearedevelopers.com/videos/976-empowering-retail-through-applied-machine-learning) (from "Empowering Retail Through Applied Machine Learning") - [Architecting web applications for seamless offline availability](https://www.wearedevelopers.com/videos/45-progressive-web-apps-the-next-big-thing) (from "Progressive Web Apps - The next big thing") - [Defining headless systems for omnichannel digital storefront delivery](https://www.wearedevelopers.com/videos/97-headless-and-jamstack-the-state-of-commerce-today) (from "Headless and JAMstack - The State of Commerce Today") - [Developing omnichannel retail and augmented reality tools](https://www.wearedevelopers.com/videos/444-ikea-story-transforming-an-iconic-retail-brand) (from "IKEA Story: Transforming an Iconic Retail Brand") - [Simplifying offline data persistence using AWS Amplify DataStore](https://www.wearedevelopers.com/videos/554-offline-first-automatic-data-synchronisations-for-your-web-and-mobile-applications) (from "Offline first & automatic data synchronisations for your web and mobile applications") ## Related Articles - [Making Data Warehouses Fast: A Developer’s Story](https://www.wearedevelopers.com/magazine/107-making-data-warehouses-fast-a-developer-s-story) - [Dev Digest 139 - Soft and hard queries](https://www.wearedevelopers.com/magazine/487-dev-digest-139-soft-and-hard-queries) - [Why Event-Driven Architecture Isn’t About Speed (and When You Actually Need It)](https://www.wearedevelopers.com/magazine/745-why-event-driven-architecture-isn-t-about-speed-and-when-you-actually-need-it) - [Dev Digest 120 - Apple and peers](https://www.wearedevelopers.com/magazine/455-dev-digest-120-apple-and-peers) ## Related Jobs - [Data Scientist](https://www.wearedevelopers.com/jobs/ext/1351648-data-scientist) at **Almedia** - [Senior Backend Engineer (Java)](https://www.wearedevelopers.com/jobs/ext/19369-senior-backend-engineer-java) at **Bonial International GmbH** - [Junior Frontend Engineer](https://www.wearedevelopers.com/jobs/ext/1532351-junior-frontend-engineer) at **Almedia** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/682327-remote-senior-full-stack-engineer) at **Edge Impulse** - [Senior Product UI Designer](https://www.wearedevelopers.com/jobs/ext/1998621-senior-product-ui-designer) at **Almedia** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/356164-remote-senior-full-stack-engineer) at **Edge Impulse**