Flux de test A/B
patterns
Ce flux de travail modélise la comparaison de deux versions pour voir laquelle donne les meilleures performances.
patterns
Ce flux de travail modélise la prévention du traitement de trop nombreuses requêtes.
Client { # Client
n1: circle label:"Start"
n2: rectangle label:"Send API request"
n3: rectangle label:"Receive response"
n4: circle label:"End"
n1.handle(right) -> n2.handle(left)
n2.handle(bottom) -> RateLimiter.n5.handle(top) [label="Request"]
n3.handle(right) -> n4.handle(left)
}
RateLimiter { # Rate Limiter
n5: rectangle label:"Extract client identifier"
n6: rectangle label:"Get current window count"
n7: diamond label:"Within rate limit?"
n8: rectangle label:"Increment request count"
n9: rectangle label:"Return 429 Too Many Requests"
n10: diamond label:"Algorithm type?"
n11: rectangle label:"Token bucket check"
n12: rectangle label:"Sliding window check"
n5.handle(right) -> n6.handle(left)
n6.handle(right) -> n10.handle(left)
n10.handle(right) -> n11.handle(left) [label="Token bucket"]
n10.handle(bottom) -> n12.handle(top) [label="Sliding window"]
n11.handle(right) -> n7.handle(left)
n12.handle(right) -> n7.handle(top)
n7.handle(right) -> n8.handle(left) [label="Yes"]
n7.handle(bottom) -> n9.handle(top) [label="No"]
n8.handle(bottom) -> Backend.n13.handle(top) [label="Allow"]
n9.handle(top) -> Client.n3.handle(bottom) [label="Rejected"]
}
Backend { # Backend Service
n13: rectangle label:"Process request"
n14: rectangle label:"Execute business logic"
n15: diamond label:"Request successful?"
n16: rectangle label:"Return 200 OK"
n17: rectangle label:"Return error response"
n18: rectangle label:"Add rate limit headers"
n13.handle(right) -> n14.handle(left)
n14.handle(right) -> n15.handle(left)
n15.handle(right) -> n16.handle(left) [label="Yes"]
n15.handle(bottom) -> n17.handle(top) [label="No"]
n16.handle(right) -> n18.handle(left)
n17.handle(right) -> n18.handle(top)
n18.handle(top) -> Client.n3.handle(bottom) [label="Response"]
}
patterns
Ce flux de travail modélise la comparaison de deux versions pour voir laquelle donne les meilleures performances.
patterns
Ce workflow modélise la journalisation de toutes les actions importantes à des fins de conformité.
patterns
Ce workflow modélise la vérification des permissions utilisateur avant l’exécution des actions.
patterns
Ce workflow modélise une opération asynchrone qui notifie un callback une fois terminée.
patterns
Ce workflow modélise la conservation de grosses charges utiles en externe en ne faisant transiter que des références.
patterns
Ce flux de travail modélise le rollback du travail lorsqu'une étape ultérieure échoue.