Colissimo Mission

In this section, we will explore the details of the mission carried out at Colissimo.
Colissimo Logo

Source: La Poste

Context

My mission was carried out for La Poste Colis, an important and long-standing client of Artik Consulting. In this mission, I joined Squad 1 for the redesign of the “Webhook” project. However, this is not the only project the Squad is working on. A squad is an agile concept where a small project team, with one or more assigned projects, is autonomous and versatile, with various business roles present.

Scrum Method Diagram

Source: Tuleap

The Squad works on projects related to Colis 360. Colis 360 is a Colissimo project aimed at centralizing the information that Colissimo receives from third parties working with La Poste Colis. The various third parties have their own methods and message formats. For example, a subcontractor responsible for transporting parcels between sorting centers and delivery centers has a different format from that of the final carrier to the customer. These messages are completely different but have a similar purpose.

With the various messages centralized into a single format where all the information from the different third parties is present, we can then exploit them to ensure better parcel tracking or for third-party applications.

Webhook Project

Initial Context

Before the “Webhook” project was created, there were only two solutions for exposing tracking data to clients:

  1. Electronic Data Interchange (EDI): Processes that allow the exchange of information between the IS of different companies. To make these processes work, standards must be defined between these companies, which can require efforts from IS managers and business experts.

  2. Web Applications: Allowing tracking only with client requests (“Polling”). During real-time tracking, the client sends requests at a certain frequency to ensure an update of the parcel status, which results in unnecessary calls. These solutions offer no possibility for customization.

Polling vs Webhook

Source: La Poste

Objectives of the Webhook Project

The “Webhook” project aims to:

  • Reduce web service calls for parcel tracking.
  • Offer clients an alternative for real-time tracking.
  • Provide better customization of tracking based on client needs (filtering by type, etc.).
  • Decrease contacts with support teams.

This solution targets business clients (B2B) such as Amazon, Alibaba, Temu, and others, companies with high volumes. As the project name indicates, it is based around “webhooks,” an HTTP callback that occurs when an event happens. The client will no longer need to refresh or make calls to see the progress status of the tracked parcels; they are generally used for real-time notifications.

Basic Mechanism

The basic mechanism of webhooks involves making an HTTP request to a specific URL. A webhook makes an HTTP callback to a URL configured by the system to receive data. While APIs and webhooks both accomplish the same task, webhooks are much more efficient for transferring data by significantly reducing server load compared to API calls.

An initial version of the project was estimated to reduce infrastructure costs by reducing the number of daily calls from 5.9 million to 1.7 million, a 70% reduction in traffic.

Redesign of the Webhook Project

Initial Problems

The initial version of the project had some issues:

  • The project was initially planned for one client as part of an MVP (Minimum Viable Product).
  • Push errors to one client affected other clients.
  • It could not handle hundreds of clients in anticipation of future needs; this solution was not scalable.
  • We wanted to replace the “Akka” framework (Scala/Java) with the Spring framework.
Akka logo

Source: Akka

New Architecture

In this new version, a new architecture has been implemented to meet the new functional requirements such as:

  • Exporting data to formats specific to logistics clients.
  • Managing message consumption for clients.
  • Different subscription profiles depending on needs.
  • Allowing clients to subscribe to multiple APIs from a single account.
  • Implementing a technical and functional replay system.

This new architecture focuses on three axes: scalability, adaptability, and operability. For this, we use Spring Boot with Swagger.

Spring Logo
Swagger Logo

Source: Spring, Swagger