Je werkt op de operationele desk van een betalingsswitch die tussen handelaren en kaartuitgevers staat. Elke minuut komen ongeveer 400 transacties per seconde binnen; elke wordt op fraude gescoord, wacht op een vrij verbindingsslot en wordt doorgestuurd naar zijn uitgever voor een antwoord. Het model berekent wachtrijen, time-outs, client-retries, de afweging van het fraudefilter en stand-in-blootstelling uit leerboekformules. Bedragen zijn in generieke valutaeenheden (u). Alleen een educatieve simulatie — geen financieel, juridisch of beleggingsadvies.
Wat je gaat leren
Waarom retries een overbelaste switch in een retry-storm kunnen vastzetten, zelfs nadat er capaciteit is toegevoegd — en hoe load shedding de lus doorbreekt.
Hoe een drempel voor de fraudescore fraudeverliezen afweegt tegen afgewezen goede klanten, en waarom de juiste drempel afhangt van de basisfrequentie van fraude.
Hoe één trage uitgever alle verbindingsslots vult (wet van Little), en wat time-outs en stand-in-verwerking kosten.
Simulator
Tijd 0 min
▶Server in bedrijf
⚙Server start
·Vrije rackpositie
✓Uitgever antwoordt normaal
⌛Uitgever traag of down
⇄Stand-in-verwerking aan
•Binnenkomende transacties
Bediening
Elke server heeft 32 verbindingsslots. Toegevoegde servers hebben 5 minuten nodig om te starten; elke server wordt gefactureerd, of hij nu start of niet.
Laat hooguit 90 % van de capaciteit toe en beantwoordt de overmaat meteen met ‘probeer het later opnieuw’, in plaats van die in de wachtrij te laten staan en te laten verlopen.
Hoe handelaren een technische fout opnieuw proberen (tot 3 pogingen). Direct = in de volgende minuut; backoff = willekeurige exponentiële backoff, gemiddelde vertragingen van 1, 2 en 4 minuten.
Transacties met een score op of boven deze waarde worden afgewezen. Scores zijn in standaarddeviaties van het echte verkeer: lager betekent meer gestopte fraude en meer afgewezen goede klanten.
Scores zo ver onder de drempel krijgen een extra klantuitdaging in plaats van een beslissing: 85 % van de echte klanten voltooit die, 5 % van de fraudeurs slaagt. 0 = uit.
Hoe lang een verbindingsslot wacht op het antwoord van de uitgever. Daarna stuurt de switch een reversal en gebruikt stand-in, of wijst af met ‘uitgever niet beschikbaar’.
Als de uitgever niet op tijd antwoordt, keurt de switch namens hem goed tot dit bedrag. Elke stand-in-goedkeuring is een blootstelling die de uitgever nooit heeft gecontroleerd. 0 = uit.
Indicatoren
Goedkeuringspercentage goede klanten
99,9%
normaal
Autorisatietijd
330ms
normaal
Fraudepercentage (aandeel van goedgekeurd bedrag)
10,4bp
normaal
Verbindingsslots bezet
69%
normaal
Goedkeuringspercentage, gezonde uitgevers
99,9 %
Goede klanten afgewezen door de frauderegel
1,3 ‰
Transacties naar step-up gestuurd
0,0 %
Gestopte fraude
31 %
Nieuwe transacties
400 tx/s
Aangeboden belasting (nieuw + retries)
400 tx/s
Retries
0 tx/s
Geweigerd (beantwoord met ‘probeer later’)
0 tx/s
Vervallen in de wachtrij
0,0 %
Time-outs van uitgevers
0,0 %
Stand-in-goedkeuringen
0 tx/s
Servers in bedrijf
6
Servers die starten
0
Serverkostensnelheid
36 u/h
Serverkosten tot nu toe
0 u
Stand-in-blootstelling
0,00 M u
Tot nu toe goedgekeurde fraude
0,00 M u
Tot nu toe verloren goede transacties
0,0 k tx
Transacties die op een retry wachten
0 tx
Latentie uitgeversgroep B (gemiddeld)
250 ms
Trend
Crisisscenario’s
Niveau 1 · Uitverkooppiek
Een grote online uitverkoop opent in minuut 5 en verdubbelt het verkeer tot ongeveer 800 transacties per seconde gedurende 45 minuten. De switch draait op 6 servers, gedimensioneerd voor een normale dag met ongeveer 70 % bezetting. Handelaren proberen elke technische fout direct opnieuw. Houd goede klanten goedgekeurd en antwoorden snel zonder capaciteit te kopen die je niet nodig hebt.
Gemiddelde goedkeuring goede klanten ≥ 95 % vanaf de uitverkoop
Gemiddelde autorisatietijd ≤ 500 ms
Serverkosten ≤ 75 u
Niveau 2 · Fraudegolf
In minuut 5 begint een partij gestolen kaartgegevens te worden gebruikt: het fraudeaandeel in het verkeer springt van 0,1 % naar 1 %. De afwijzingsdrempel is ingesteld voor normale dagen (3σ) en step-up staat uit. Breng het fraudepercentage omlaag zonder goede klanten af te wijzen.
Gemiddeld fraudepercentage ≤ 25 bp
Gemiddelde goedkeuring goede klanten ≥ 98 %
Door de regel afgewezen goede klanten ≤ 5 ‰
Niveau 3 · Storing bij uitgevers
In minuut 5 vertragen de uitgevers van groep B — een kwart van al het verkeer — tot een gemiddelde antwoordtijd van 12 seconden. De switch wacht tot 8 s op een antwoord, heeft geen stand-in en draait op 6 servers. Houd de klanten van de gezonde uitgevers in beweging, bedien groep B zover dat veilig kan en houd stand-in-blootstelling en kosten in de hand.
Gemiddelde goedkeuring voor klanten van gezonde uitgevers ≥ 90 %
Gemiddelde goedkeuring goede klanten ≥ 86 %
Stand-in-blootstelling ≤ 9 M u
Serverkosten ≤ 65 u
Grondslag — het model achter de getallen
Elk verband dat de simulator gebruikt, met bron. Constanten die als aanname zijn gemarkeerd, zijn illustratieve kalibraties.
Nieuwe transacties komen binnen met een basisfrequentie maal de uitverkooppiek; het aantal per minuut is willekeurig (Poisson, normale benadering) met een beetje stootvormigheid.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Aanname: aantallen slots, service- en uitgevertijden, scheiding van scores, doorlooppercentages van step-up, aandeel verspild werk, bedragen en prijzen zijn illustratieve waarden voor een middelgrote switch, geen cijfers van een echt netwerk.
Binormale fraudescore: scores van echte en frauduleuze transacties zijn twee normale krommen op afstand d′; de drempel kiest een punt op de ROC-curve.
genuine score ~ N(0,1), fraud ~ N(d′,1), d′ = 2.5; FPR(t) = 1 − Φ(t), TPR(t) = 1 − Φ(t − d′); AUC = Φ(d′/√2) ≈ 0.96[6][7]Aanname: aantallen slots, service- en uitgevertijden, scheiding van scores, doorlooppercentages van step-up, aandeel verspild werk, bedragen en prijzen zijn illustratieve waarden voor een middelgrote switch, geen cijfers van een echt netwerk.
Kostenoptimale drempel: wijs af wanneer de aannemelijkheidsratio de kostenratio gewogen met de basisfrequentie overschrijdt — tien keer meer fraude schuift hem ln 10 / d′ ≈ 0,9σ lager.
Step-up: scores in de band onder de drempel krijgen een uitdaging in plaats van een beslissing.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Aanname: aantallen slots, service- en uitgevertijden, scheiding van scores, doorlooppercentages van step-up, aandeel verspild werk, bedragen en prijzen zijn illustratieve waarden voor een middelgrote switch, geen cijfers van een echt netwerk.
De latentie van de uitgever is exponentieel; een slot wordt vastgehouden voor de latentie of de time-out, wat het eerst komt.
L ~ Exp(mean m); E[min(L, T)] = m(1 − e^(−T/m)), P(L > T) = e^(−T/m); S = 80 ms + forwarded × Σ share·E[min(L,T)][2][9]
Wet van Little: bezette slots = aankomstsnelheid × vasthoudtijd.
Erlang C: de kans dat een transactie op een vrij slot wacht, en de kans dat ze langer wacht dan de wachtrij-time-out van 2 s.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Boven de capaciteit besteedt de switch ook werk aan verzoeken die hij later laat vallen, dus de nuttige doorvoer daalt als de belasting stijgt; load shedding weigert de overmaat goedkoop.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Aanname: aantallen slots, service- en uitgevertijden, scheiding van scores, doorlooppercentages van step-up, aandeel verspild werk, bedragen en prijzen zijn illustratieve waarden voor een middelgrote switch, geen cijfers van een echt netwerk.
Retries van de client: elke technische fout wordt tot driemaal opnieuw geprobeerd, direct of met willekeurige exponentiële backoff.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Aanname: aantallen slots, service- en uitgevertijden, scheiding van scores, doorlooppercentages van step-up, aandeel verspild werk, bedragen en prijzen zijn illustratieve waarden voor een middelgrote switch, geen cijfers van een echt netwerk.
Time-out van de uitgever, reversal en stand-in: bedragen zijn lognormaal, dus het aandeel onder de limiet en het goedgekeurde volume volgen uit de normale CDF.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Fraudepercentage in basispunten van het goedgekeurde bedrag; 13 bp wordt gebruikt als referentieschaal voor kleine kaartbetalingen op afstand.
Overige bedrijfsconstanten die het model gebruikt.
32 slots per server, 2–24 servers, +5 min boot, 6 u per server-hour · switch time 80 ms · queue timeout 2 s · issuer latency 250 ms (group B = 25 % of traffic, ±15 % per minute) · amounts lognormal, median 40 u, σ = 1, fraud ×1.5 · ω = 0.3 · shedding at 90 % · reversal = 80 ms of switch timeAanname: aantallen slots, service- en uitgevertijden, scheiding van scores, doorlooppercentages van step-up, aandeel verspild werk, bedragen en prijzen zijn illustratieve waarden voor een middelgrote switch, geen cijfers van een echt netwerk.
Willekeur: een mulberry32-generator met seed; gebruikte verdelingen — uniform, exponentieel (inverse CDF), normaal (Box–Muller), Poisson (Knuth). De seed wordt getoond en kan worden gedeeld.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013