Real-Time Delivery Tracking UI in a single sprint at Onward | Materialize



Onward is a white-glove marketplace for final mile big and bulky shipping. They needed a way to serve real-time delivery status in customer-facing UI and notifications. After choosing Materialize, they went from zero to fully operational in less than two weeks of work.

Onward delivery status UI example

Today, Materialize is joining and transforming real-time delivery and customer data, and serving results to a reactive UI that updates using real-time subscriptions.

Company Background

Onward succeeds by providing a better experience for the retailer and the customer. A key lever they have in that mission is technology. For example, from the beginning, they were able to drive efficiencies by using matchmaking algorithms to assign deliveries to trucks with compatible routes.

They knew that real-time tracking and notifications would be a key differentiator on both sides of their marketplace. This feature would be useful in winning over the business of new retailers, and even more useful in improving the experience of the delivery recipient.

Companies like Amazon and Uber have raised the bar for real-time UI in regular e-commerce and delivery. Real-time logistics for last-mile delivery of big and bulky items like furniture and mattresses is arguably more important, you can’t exactly leave a couch on someone’s doorstep, but the state of technology in the industry is typically much worse.

The Challenge

Onward needed to provide best-in-class real-time delivery tracking on par with Uber, but with a much smaller budget and a team of one data engineer!

Potential Solutions

Real-time location tracking is well-suited to an append-only log like Kafka, so Clayton had already done the work to get active deliveries and location pings from delivery trucks streaming into Kafka.

Next they needed a solution for the transforming and serving steps.

Clayton first explored using ksqlDB, but configuring and managing it proved too labor-intensive for a team of one: “We got data flowing into ksqlDB locally, but we needed something managed and we hit dead-ends getting the joins, transformations and queries we needed working in ksqlDB cloud, so we decided to try Materialize.”


“Getting Data flowing in from Kafka was a breeze.” Clayton was able to quickly set up a secure connection from Materialize to Upstash, which they were using for managed Kafka.

Onward Materialize Architecture

From there, Clayton was able to grant the necessary read privileges to his application team, who then used the SUBSCRIBE primitive in Materialize in their API layer to efficiently route live location updates to active sessions in the client application.

The application team got running without any hiccups, due in part to the fact that the API’s they were using were standard PostgreSQL. No new dependencies, no SDK’s, just stable PostgreSQL drivers.

Try Materialize Free

Get hands-on with Materialize in a 14-day Free Trial. Bring your own data, or use data sources we provide.

Get Access

At that point, customers watching delivery status were seeing a map with live location tracking of their delivery, powered by Materialize.

As impressive as the customer-facing capabilities was the time to ship: “Only about two weeks worth of work was required to go from first conversation about Materialize to customer-facing location tracking.”

Conclusion and Future Use Cases

I never have to think about Materialize, which is great for a one-person data engineering team.
— Clayton Van Hovel

The biggest highlight for Clayton came after the initial setup: “I never have to think about Materialize, which is great for a one-person data engineering team.” Materialize has proven to be incredibly low-maintenance once set up, a vital attribute for a tool operated by a one-person data engineering team.

Clayton and the team at Onward see new business cases for Materialize around user-facing notifications, as well as a potential replacement for certain batch workflows like internal analytics and dashboards, especially as the managed streaming data ecosystem matures to provide capabilities on-par with batch.

Try Materialize Free