Aucune survente
Ventes confirmées ≤ stock, quelle que soit la concurrence.
Test : 1 000 demandes simultanées sur 1 billet, puis sur 50.
Une solution qui vend deux fois le dernier billet ne gagne jamais, même si elle est la plus rapide. Chaque note vient d'un test automatique rejouable sur une machine jetable.
Échouer à une seule exclut du podium. Vous gardez votre certificat de participation si le projet livré démarre.
Ventes confirmées ≤ stock, quelle que soit la concurrence.
Test : 1 000 demandes simultanées sur 1 billet, puis sur 50.
Une même clé d'idempotence débite une seule fois.
Test : rejeu, double clic, retries après timeout du faux PSP.
Signature vérifiée, doublons ignorés, aucun statut qui régresse.
Test : webhooks forgés, rejoués, dupliqués, dans le désordre.
Personne ne lit ni n'annule la commande d'un autre ; routes admin protégées.
Test : attaques d'accès horizontal et vertical.
Redémarrage en plein test sans commande perdue ni billet fantôme.
Test : arrêt brutal de l'API puis de la base pendant la charge.
Démarre en une commande, expose /health, respecte le contrat, livré à temps.
Test : démarrage sur VM propre, tests de contrat.
La correction sous concurrence et les paiements valent 50 points à eux deux. La performance pèse 20 points, mesurée sur quatre profils avec le même budget de ressources pour tout le monde.
Points par paliers par rapport à l'implémentation de référence : de 100 % (≥ 1,5×) à 0 (sous 0,25×).
À déclarer dans DECISIONS.md : quels outils, pour quelles parties du code. Vous restez responsable de ce que vous livrez.
48 h après la publication des résultats, avec une reproduction du problème. Décision finale et motivée de l'organisation.