Aller au contenu
Paul Bodin
← Retour aux expériences

février 2024 – aujourd'hui · Nantes

Maisons du Monde — Supply

Développeur Backend Java · Aubay

Intégration de l'OMS OneStock et refonte complète des flux supply chain sur Google Cloud Platform.

En bref

Méthode
Agile Scrum
Environnement
  • Java
  • Spring Boot
  • Google Cloud Platform
  • Pub/Sub
  • API REST
  • Webhooks
  • Gemini Code Assist

Contexte et enjeux

Maisons du Monde a choisi d’intégrer OneStock, un OMS (Order Management System), pour orchestrer ses commandes entre ses différents canaux de vente et ses sources de stock. J’interviens au sein du pôle Supply, en charge des applications liées au transport et au stock.

L’arrivée d’un OMS change la circulation de l’information : les flux existants entre les systèmes devaient être repensés de bout en bout. Avec trois exigences :

  • Refondre tous les flux concernés sans interrompre l’activité existante.
  • Fiabiliser les échanges entre des systèmes hétérogènes : aucun message perdu, des reprises possibles en cas d’erreur.
  • Découpler les applications pour pouvoir faire évoluer chaque système indépendamment.

Architecture

Les échanges reposent sur une architecture événementielle sur Google Cloud Platform. En interne, les systèmes de Maisons du Monde publient leurs événements dans des topics Pub/Sub, consommés par des services Java / Spring Boot.

Ces services font le lien avec OneStock : ils transmettent les données à l’OMS en appelant ses API REST, et reçoivent ses notifications via des webhooks, qu’ils republient ensuite dans les topics internes.

  1. Systèmes Maisons du Monde

    Canaux de vente, stocks, transport

  2. Pub/Sub

    Topics internes

  3. Services de flux

    Java / Spring Boot sur GCP

  4. API REST

    Webhooks

  5. OMS OneStock

    Orchestration des commandes

Vue simplifiée des échanges : événements Pub/Sub en interne, API REST et webhooks avec OneStock.

En interne, ce découplage par messages permet de rejouer un flux en cas d’incident, d’absorber les pics de charge et d’ajouter un nouveau consommateur sans modifier les producteurs.

Ce que j’ai fait

  • Cadrage technique : participation à la conception des flux et des modèles de données.
  • Développement des services de flux, des API REST et des batchs en Java / Spring Boot.
  • Qualité : pair programming et revues techniques au sein de l’équipe.
  • RUN : suivi de la production et traitement des incidents.
  • IA dans le développement : utilisation de Gemini Code Assist au quotidien.