Objectif

L’objectif est de déplacer l’iterration avec Odoo, vers un processus en arrière-plan (via un jo), pour la finalisation du panier côté Odoo.
Ne garder qu’en synchrone, le processus lié à cineges.

  • Paiement du panier
  • Génération des tickets

Flux de la finalisation du panier (api)

sequenceDiagram participant U as UI participant A as API participant K as Kafka participant E as ES U->>A: finalize A->>A: Valid payment A-->>K: cineges.posbasket.finalize.action A-->>E: persist basket A-->>K: cineges.posbasket.data A->>A: Create ticket A->>U: done

Flux de la finalisation du panier (job)

sequenceDiagram participant K as Kafka participant J as Job participant E as ES participant O as Odoo participant P as Postgresql K->>J: cineges.posbasket.finalize.action J->>P: insert basket alt fail J-->>J: Crash Job end J->>O: Create basket in odoo alt fail J->>E: persist basket J-->>J: Crash Job end J->>E: persist basket J->>P: update basket J->>K: cineges.posbasket.data

Job

Dans le Job, on a intégré des interactions avec PosgreSQL, pour qu’avant & après chaque traitement Odoo, on puisse garder le dernier état du panier.

Rejeu de finalisation : Un rejeu corresponds à un retraitement de la finalisation du panier odoo, lorsque la finalisation odoo a échoué. Ce rejeu est possibile uniquement après le première finalisation odoo échoué.