Event storming

Les commandes, events, policies et read models du système, par bounded context : chaque ligne se lit de gauche à droite, de l’event déclencheur à la policy qui y réagit, puis aux commandes qu’elle déclenche et aux events qu’elles produisent, ou aux read models qu’elle met à jour. Généré par npm run docs:event-storming : ne pas modifier à la main.

api

api-started

L’API a démarré et écoute sur son port.

api/api-started

boat

create-boat

Ajouter un bateau à la flotte, sans trajet prévu.

boat
les réglages du bateau (nom, polaire…), vérifiés avant l’ajout

le bateau ajouté, avec son identifiant

boat/create-boat

boat-created

Un bateau a été ajouté à la flotte.

boatId
l’identifiant qui lui a été donné
boat/boat-created

delete-boat

Retirer un bateau de la flotte.

boatId
le bateau à retirer

rien

boat/delete-boat

boat-deleted

Un bateau a été retiré de la flotte.

boatId
le bateau retiré
boat/boat-deleted

save-boat

Modifier les réglages d’un bateau, sans toucher à son trajet.

boatId
le bateau à modifier
boat
ses nouveaux réglages, vérifiés avant l’enregistrement

le bateau modifié

boat/save-boat

boat-saved

Les réglages d’un bateau ont été modifiés.

boatId
le bateau modifié
boat/boat-saved

save-trip

Remplacer le trajet prévu d’un bateau.

boatId
le bateau concerné
trip
son nouveau trajet (départ, arrivée, date de départ…), vérifié avant l’enregistrement

le bateau, avec son nouveau trajet

boat/save-trip

trip-saved

Le trajet prévu d’un bateau a été remplacé.

boatId
le bateau concerné
boat/trip-saved

forecast

forecast-started

⇠ forecast

forecast/forecast-started

when_forecast-started_then_update_models-page

Au démarrage du suivi des modèles, afficher sur la page Météo la run sur disque de chaque modèle, et aucune mise à jour en cours.

Quand forecast-started alors mettre à jour models-page

forecast/when_forecast-started_then_update_models-page

models-page

La page Météo : pour chaque modèle, sa dernière run publiée et la run téléchargée.

checkedAt
quand les dernières runs ont été vérifiées, si elles l’ont été
models
pour chaque modèle : sa dernière run complète (ou pourquoi elle n’a pu être déterminée), la run téléchargée (sa taille, ses échéances, sa grille) et son dernier téléchargement, en cours ou en échec
forecast/models-page

latest-run-check-failed

⇠ forecast

forecast/latest-run-check-failed

when_latest-run-check-failed_then_update_models-page

Si la dernière run d’un modèle n’a pas pu être déterminée, afficher pourquoi sur la page Météo, et quand.

Quand latest-run-check-failed alors mettre à jour models-page

forecast/when_latest-run-check-failed_then_update_models-page

models-page

La page Météo : pour chaque modèle, sa dernière run publiée et la run téléchargée.

checkedAt
quand les dernières runs ont été vérifiées, si elles l’ont été
models
pour chaque modèle : sa dernière run complète (ou pourquoi elle n’a pu être déterminée), la run téléchargée (sa taille, ses échéances, sa grille) et son dernier téléchargement, en cours ou en échec
forecast/models-page

latest-run-found

⇠ forecast

forecast/latest-run-found

when_latest-run-found_then_download-run

Dès que la dernière run d’un modèle est trouvée, lui demander de la télécharger : il ne la télécharge que s’il est absent du disque, ou que sa run sur disque est dépassée, et qu’il ne télécharge pas déjà.

Quand latest-run-found alors download-run

forecast/when_latest-run-found_then_download-run

download-run

Télécharger une run donnée d’un modèle météo et en faire le fichier de vent sur lequel router.

model
le modèle météo (GFS, ECMWF, ARPEGE, AROME, ICON…)
run
la run à télécharger : sa date et son heure de calcul

la run téléchargée, ou déjà sur disque, et son fichier de vent ; ou pourquoi elle ne l’est pas : une autre run du modèle en cours de téléchargement, ou une plus récente sur disque

forecast/download-run

run-download-failed

Le téléchargement d’une run d’un modèle météo a échoué.

model
le modèle météo
run
la run dont le téléchargement a échoué : sa date et son heure de calcul
error
pourquoi il a échoué

⇢ forecast · when_run-download-failed_then_update_models-page

forecast/run-download-failed

latest-run-found

⇠ forecast

forecast/latest-run-found

when_latest-run-found_then_update_models-page

Dès que la dernière run d’un modèle est trouvée, l’afficher sur la page Météo, et quand elle l’a été.

Quand latest-run-found alors mettre à jour models-page

forecast/when_latest-run-found_then_update_models-page

models-page

La page Météo : pour chaque modèle, sa dernière run publiée et la run téléchargée.

checkedAt
quand les dernières runs ont été vérifiées, si elles l’ont été
models
pour chaque modèle : sa dernière run complète (ou pourquoi elle n’a pu être déterminée), la run téléchargée (sa taille, ses échéances, sa grille) et son dernier téléchargement, en cours ou en échec
forecast/models-page

latest-runs-check-due

⇠ forecast

forecast/latest-runs-check-due

when_latest-runs-check-due_then_check-latest-runs

Une fois l’intervalle entre deux vérifications écoulé, vérifier à nouveau la dernière run de chaque modèle.

Quand latest-runs-check-due alors check-latest-runs

forecast/when_latest-runs-check-due_then_check-latest-runs

check-latest-runs

Vérifier, pour chaque modèle météo, quelle est la dernière run que sa source a entièrement publiée.

pour chaque modèle, sa dernière run complète, ou pourquoi elle n’a pas pu être déterminée

forecast/check-latest-runs

run-download-failed

⇠ forecast

forecast/run-download-failed

when_run-download-failed_then_update_models-page

Si le téléchargement d’une run échoue, afficher sur la page Météo l’échec de la mise à jour du modèle, et pourquoi.

Quand run-download-failed alors mettre à jour models-page

forecast/when_run-download-failed_then_update_models-page

models-page

La page Météo : pour chaque modèle, sa dernière run publiée et la run téléchargée.

checkedAt
quand les dernières runs ont été vérifiées, si elles l’ont été
models
pour chaque modèle : sa dernière run complète (ou pourquoi elle n’a pu être déterminée), la run téléchargée (sa taille, ses échéances, sa grille) et son dernier téléchargement, en cours ou en échec
forecast/models-page

run-download-started

⇠ forecast

forecast/run-download-started

when_run-download-started_then_update_models-page

Dès qu’une run commence à être téléchargée, afficher sur la page Météo le modèle en cours de mise à jour.

Quand run-download-started alors mettre à jour models-page

forecast/when_run-download-started_then_update_models-page

models-page

La page Météo : pour chaque modèle, sa dernière run publiée et la run téléchargée.

checkedAt
quand les dernières runs ont été vérifiées, si elles l’ont été
models
pour chaque modèle : sa dernière run complète (ou pourquoi elle n’a pu être déterminée), la run téléchargée (sa taille, ses échéances, sa grille) et son dernier téléchargement, en cours ou en échec
forecast/models-page

run-downloaded

⇠ forecast

forecast/run-downloaded

when_run-downloaded_then_update_models-page

Une fois une run téléchargée, afficher sur la page Météo la run désormais sur disque, et la mise à jour terminée.

Quand run-downloaded alors mettre à jour models-page

forecast/when_run-downloaded_then_update_models-page

models-page

La page Météo : pour chaque modèle, sa dernière run publiée et la run téléchargée.

checkedAt
quand les dernières runs ont été vérifiées, si elles l’ont été
models
pour chaque modèle : sa dernière run complète (ou pourquoi elle n’a pu être déterminée), la run téléchargée (sa taille, ses échéances, sa grille) et son dernier téléchargement, en cours ou en échec
forecast/models-page

routing

compute-route

Calculer la route la plus rapide entre deux points, selon les prévisions d’un modèle météo.

file
le fichier de vent du modèle météo à suivre
polarName
la polaire du bateau
start
le point de départ
end
le point d’arrivée
departureTime
la date et l’heure de départ
timeStepHours
le pas de temps entre deux isochrones, en heures
gridResolutionDeg
la finesse de la grille de calcul, en degrés
minCoastDistanceNm
la distance minimale à garder avec la côte, en milles
motorSpeedKn
la vitesse au moteur, en nœuds, si le bateau peut en faire
motorThresholdKn
la vitesse à la voile en dessous de laquelle le bateau passe au moteur
motorFuelConsumptionLph
la consommation du moteur, en litres par heure, pour estimer le carburant brûlé
polarFactor
la part de la vitesse de la polaire que le bateau atteint vraiment

la route (points de passage, statistiques dont les heures moteur et le carburant brûlé) et les isochrones parcourues

routing/compute-route

route-computed

Une route a été calculée.

file
le fichier de vent du modèle météo suivi
polarName
la polaire du bateau
departureTime
la date et l’heure de départ
reachedDestination
si la route atteint le point d’arrivée