How Maersk Built a “Time Machine” for the Logistics Industry with Temporal

With Temporal, it now takes 5 to 10 days to add new features instead of the previous 60 to 80 days

Maersk Logo white png

Industry

Logistics

Use Case

Logistics

Company Size

Megacorp

SDK

Java

Temporal

Self-Hosted

A “Time Machine” for the Logistics Industry with Temporal

Is time travel possible? According to the Theory of Relativity, it is. If you go really fast, then time will slow down for you compared to other people. In this case, we’re giving time back compared to our old selves, we’re giving time to our customers, we’re giving time to our engineers…And it is all possible due to Temporal.

Maersk, a global leader in shipping and logistics, has been orchestrating trade for over a century. With activities that span from container shipping to supply chain services, the Danish multinational company has established a reputation as a cornerstone of international commerce.

The company’s technical ecosystem is as intricate as its physical one. It involves legacy systems and modern applications that must operate together to deliver a seamless logistics experience. Using Temporal, Maersk transformed key applications like its payments and booking flows. Temporal has helped Maersk increase customer satisfaction and improve developer productivity by over 10x.

Time wasted on non-business-critical work

Before adopting Temporal, Maersk engineers spent the majority of their time on tasks to improve operational readiness, instead of core business logic. These tasks included increasing systems resiliency, achieving data consistency across multiple services, and enabling business users to configure business decision rules in the applications.

Due to the time sunk into these types of non-business-critical projects, the team estimated it could take them 60 to 80 days to add new features to their platform. Onboarding additional developers wouldn’t solve their challenge, as the upskilling process itself posed a considerable time investment.

Temporal: the time machine

When Maersk adopted Temporal, they soon discovered that the workflow orchestration tool handled many of the “operational readiness” tasks that previously consumed developers’ time. They also implemented Temporal to improve reliability and observability in business-critical systems.

The Maersk team jokes that Temporal is their time machine: they estimate it now takes 5 to 10 days to add new features instead of the previous 60 to 80 days, a 6-16x increase in productivity.

A new, reliable payment flow with Temporal

The addition of Temporal has really helped us. Now our payment process is super smooth, it is highly resilient, and it has also reduced the customers’ wait time.

Temporal helps Maersk solve day-to-day business problems, ultimately saving time for customer service reps and increasing end-customer satisfaction.

Maersk’s legacy payment flow had a stateless orchestrator that communicated with a payment gateway, and three downstream services: booking, account, and customer notification. If one of these services went down, retries were complex because the orchestrator was stateless. Sometimes, payments were delayed, and this delayed shipments. Customers grew frustrated and called customer service agents, who in turn had to manually check each payment step to determine what had gone wrong.

With Temporal, they replaced their payment orchestrator with a Workflow. Their booking, account, and notification services became Activities. Developers were able to decouple the services, so payments can execute immediately after the payment confirmation. If a failure occurs, Temporal’s automatic retries ensure it eventually completes. As a result, customer wait times are significantly shorter.

Booking flow: from monolith to Temporal

We have Temporal, so we have time travel right here. So that actually simplified the way we did the transformation [from monolith to a modern order management system.

Maersk’s booking flow was a decades-old monolith with the challenges of all monoliths: tightly coupled with a shared database, and incredibly difficult to observe and troubleshoot. When there were any issues, the team would spend a lot of time trying to find what went wrong, instead of spending that time fixing it.

The team wanted to take the booking monolith and combine it with other types of booking services, so they had a single order management application for everything from inland shipping to air cargo. They needed this new flow to be highly resilient and able to react to external events. Without Temporal, they estimated this transformation would take three years.

Their new booking flow is completely powered by Temporal Workflows. They use Temporal to stitch together and orchestrate each step in the booking process. Here are some benefits Temporal provides:

  • Dynamic workflows: billing can happen instantly or at the end of the workflow. With Temporal, they can decide which type of billing should occur by invoking different Activities.
  • Human-in-the-loop: Temporal lets them easily build human-in-the-loop steps into their Workflows, like uploading documents. They simply build these steps as child Workflows.
  • Long-running workflows: transferring goods between countries takes days to weeks. Temporal makes these Workflows easier and more resilient.
  • Observability: they can easily go into the Temporal UI and see in real-time the progress of a booking and whether there are any issues. They can pinpoint an issue to code and quickly fix it. This observability is a vast improvement from the observability of their previous monolith.

Saving time with control planes

Our secret ingredient is no surprise: it’s Temporal, because it enables our development engineering teams to build control planes for the platforms. They found it super easy to get started…and we have a few common patterns we use.

An additional key use case for Temporal is control planes, built by the developer engineering team to reduce the time developers spend on plumbing code. These control planes have multiple uses, across different systems. Examples include:

  • A job schedule pattern: schedules distributed jobs, and can run in different regions and zones.
  • Infrastructure broker: manages infrastructure provisioning across different platforms.
  • A development pipeline: Maersk replaced their GitHub Actions pipeline with Temporal. They use Temporal to deploy applications into multiple clusters and configure all the endpoints and routes. They can now deploy to multi-cloud and on-prep environments, which wasn’t possible with GitHub Actions. They also have improved visibility.

Navigating a Future with Temporal

The evolution from a shipping company to an integrated logistics leader is ongoing. Maersk will continue leveraging Temporal to reduce operational timelines and deliver time back to the business and its customers.

Build invincible apps

Ready to learn why companies like Snap, Alaska Airlines, and Nvidia trust Temporal as their secure and scalable way to build and innovate?