Passer au contenu principal

Vous autoriser à échouer

Bonjour à tous, c'est un message très court avec un message simple : conception pour l'échec. Même si vous n'avez jamais entendu parler de MSSQL (ou Azure, ou Microsoft ? , je veux parler pendant un instant de l'importance des upserts et d'un drôle terme de développeur appelé « idempotence ».

Nous venons d'élargir notre adaptateur langue-mssql avec une fonction personnalisée qui permet les upserts (unupsert consiste à insérer un nouvel enregistrement ou mettre à jour un enregistrement existant en fonction d'un identifiant). Auparavant, vous deviez écrire quelque chose de fastidieux comme :

sql({
demande: `MERGE my_table AS [Target]
UTILISANT (SELECT '8675309' AS some_unique_id, 'writing_blog_posts' AS skill) COMME [Source]
SUR [Target].some_unique_id = [Source].some_unique_id
SI VRAI
MISE À JOUR [Target].some_unique_id=8675309, [Target].skill='writing_blog_posts'
SI FAUX
AJOUT (some_unique_id, skill) VALEURS ([Source].some_unique_id, [Source].skill);`,
});

alors que maintenant, vous pouvez simplement écrire :

upsert('my_table', 'some_unique_id', {
some_unique_id: 8675309,
skill: 'écrire des articles de blogs',
});

Pour qu'une opération soit idémpotente, cela signifie qu'elle peut être répétée encore et encore sans produire un résultat involontaire. Ceci est SUPER important pour créer des intégrations (Sécurisé, Stable et Scalque — plus sur ceci ici) S3 car ceci vous offre deux cartes « sortir de prison ».

  1. Si une application de destination échoue, si une connexion expire, ou si (pour une raison quelconque) vous n'êtes pas sûr que le job a été terminé (par exemple... effectuer un paiement à CHW) alors une opération idémpotente peut être ESSAYÉE DE NOUVEAU sans craindre de faire un double paiement.

  2. Si vous apportez des changements à la façon dont votre job fonctionne, apportez quelques modifications à l'un de vos systèmes de destination, ou simplement parce que vous voulez être extrêmement sûr que toutes les données d'un sondage de 9 mois ont été intégrées dans le système national de rapport sanitaire, vous pouvez REFAIRE LE PROCESSUS de chaque message qui arrive via OpenFn en un clic, sans avoir à se soucier de doublons.

Alors, quand les clients me laissent m'occuper de leurs jobs, je recommande toujours de concevoir en fonction de l'idempotence. C'est logique lorsque vous passez des messages entre deux systèmes différents qui sont voués à évoluer, se déconnecter, passer une mauvaise journée, etc

— Taylor

Inscrivez-vous{: .btn} pour mettre en place un projet aujourd'hui, absolument gratuit.

Contactez-nous{: .btn} pour plus d'informations.