Community / Users list / mallickcr



mallickcr avatar

mallickcr


Migrations de Schéma sans Interruption et Pattern Dual-Write Faire évoluer les modèles de données des magasins de stockage sous-jacents sans interrompre les sessions de jeu nécessite l'application de stratégies de migration à zéro temps d'arrêt (Zero-Downtime Schema Migration). Dans un <a href="https://pinup.cd/app/">Pin Up Africa App</a> de classe entreprise, l'indisponibilité de la base de données entraîne des pertes financières directes. Pour éviter tout verrouillage de table ou interruption de service, la plateforme s'appuie sur le pattern d'expansion-contraction (Expand-Contract Pattern) combiné au double écriture (Dual-Write) et à la transformation d'événements à la lecture via des Upcasters. La transition d'une ancienne structure de données vers une nouvelle version s'effectue en quatre phases strictement ordonnées : Phase d'expansion (Expand) : Le nouveau schéma est déployé en base de données en autorisant les valeurs nulles ou en définissant des valeurs par défaut. Le code de l'application est mis à jour pour lire l'ancien schéma mais écrire simultanément dans l'ancien et le nouveau schéma (Dual-Write). Phase de rétro-remplissage (Backfill) : Des travailleurs asynchrones en arrière-plan parcourent l'historique des données pour migrer les anciens enregistrements vers la nouvelle structure, en utilisant des clés d'idempotence pour éviter l'écrasement des données fraîchement écrites par le pattern Dual-Write. Phase de basculement (Contract Read) : Une fois la cohérence des données vérifiée, les services basculent leur logique de lecture principale vers le nouveau schéma. L'ancien schéma reste alimenté en écriture afin de permettre un retour en arrière immédiat en cas d'anomalie. Phase de contraction (Contract Write & Cleanup) : L'écriture dans l'ancien schéma est désactivée. Après une période d'observation, les anciennes colonnes ou tables sont définitivement supprimées du stockage persistant. Pour les architectures événementielles basées sur l'Event Sourcing, les événements historiques immuables ne sont jamais modifiés en place. Au lieu de cela, des transformateurs d'événements (Upcasters) interceptent le flux lors de la désérialisation depuis l'Event Store. Ils transforment à la volée la représentation binaire obsolète vers la version la plus récente du modèle du domaine avant de transmettre l'objet aux acteurs métier en mémoire. Cette approche garantit la continuité opérationnelle, élimine le besoin de fenêtres de maintenance et préserve l'intégrité de l'historique financier.

No result.