Een vraag van een gebruiker leidt vaak tot meerdere aanroepen, en elke aanroep gaat naar een dienst van een derde. Buffering bepaalt daarom twee dingen: hoe snel een gesprek verloopt, en hoe zwaar BesluitBron de bronplatformen belast.
Buffering per platform
De buffer is per platform gescheiden. Een platform dat traag antwoordt of tijdelijk niet bereikbaar is, houdt de andere zes niet op. Een leeggemaakte buffer van het ene platform raakt de andere niet.
Wat er wordt gebufferd, hangt af van de aard van de gegevens:
- Lijsten die zelden wijzigen, zoals de bronorganisaties, de commissies, de fracties en de waardelijsten van het platform Rechtspraak, worden lang bewaard. Deze lijsten wijzigen in de orde van maanden;
- Zoekresultaten worden kort bewaard. Een assistent die dezelfde vraag in één gesprek herhaalt, belast het platform daardoor niet twee keer;
- Volledige documenttekst wordt bewaard zolang dat verantwoord is, want het ophalen ervan is de duurste bewerking die dit product uitvoert.
Ongeldig na een upgrade
Een gebufferd antwoord is het antwoord van een platform zoals een bepaalde versie van BesluitBron het heeft gelezen en bewaard. Een nieuwe versie kan iets anders vragen aan het platform, of iets anders bewaren van hetzelfde antwoord. Er ligt dan een geloofwaardig antwoord op een vraag die niet meer zo wordt gesteld. Tijd repareert dat niet: volledige documenttekst wordt weken bewaard en overleeft daarmee meerdere uitgaven.
Elk gebufferd item legt daarom vast door welke versie van BesluitBron het is geschreven. Een item dat een andere versie noemt, wordt weggegooid op het moment dat er iets om vraagt, en het platform wordt opnieuw bevraagd. Er wordt niets vooraf geschoond. Alleen wat daadwerkelijk wordt opgevraagd, wordt beoordeeld. Een herstart kost daardoor nooit een buffer die zojuist is opgebouwd.
Verzoeklimieten van de platformen
De platformen verschillen sterk in wat zij verdragen. Dat is gemeten en niet aangenomen. Een niet waargenomen limiet is geen afwezige limiet. Waar de bronhouder geen limiet publiceert, is dat als bevinding bij die bronhouder gemeld.
| Platform | Waargenomen limiet |
|---|---|
| Open Raadsinformatie | geen limiet waargenomen |
| OpenBesluitvorming | 60 gewogen eenheden per minuut, door het platform zelf afgedwongen |
| Tweede Kamer | geen limiet gepubliceerd en geen limiet waargenomen |
| OpenTK | geen harde limiet; de beheerder waarschuwt zelf voor dure zoekopdrachten |
| Officiële Bekendmakingen | limiet aanwezig op de zoekdienst |
| Rechtspraak | geen limiet waargenomen op beide diensten |
| Open Archivaris | 120 aanroepen per minuut |
BesluitBron houdt zich aan die limieten aan de eigen kant. Een druk gesprek verstoort zo de dienst van een ander niet.
Hoe vaak een client BesluitBron mag aanroepen
De limieten hierboven beschermen de bronplatformen. Een tweede grens beschermt BesluitBron zelf. De MCP-adressen kennen geen authenticatie, dus staat er een snelheidsgrens op de verzoeken die een client naar BesluitBron stuurt. Zonder die grens legt één client met een stortvloed aan verzoeken de hele dienst plat, ook de onderdelen waar die client niets mee te maken heeft.
Er zijn drie grenzen, en een verzoek passeert ze alle drie:
- een grens voor het hele proces, want een stortvloed raakt de hele dienst en niet één adres;
- een grens per connector, zodat drukte op de ene connector de andere niet verdringt;
- een grens per sessie, en vóór een sessie bestaat per client-adres, zodat één client de ruimte niet alleen opmaakt.
Een client die een grens overschrijdt, krijgt HTTP 429 met een Retry-After. Dat is het aantal seconden om te wachten voordat de client het opnieuw probeert. De grenzen staan ruim en raken normaal gebruik niet. Een beheerder verhoogt ze onder BesluitBron:McpRateLimit voor een installatie met veel gelijktijdige clients. Zie Uitrol en Beheer.
Wat een lezer hiervan merkt
Een eerste vraag over een onderwerp duurt langer dan een vervolgvraag over hetzelfde onderwerp. Een vraag die volledige documenttekst nodig heeft, duurt langer dan een vraag die aan de titels genoeg heeft. Een vraag over alle 331 bronnen tegelijk duurt langer dan een vraag over één gemeente. Direct na een upgrade van BesluitBron duurt een eerste vraag opnieuw langer, want de buffer van de vorige versie wordt dan niet meer gebruikt.
Is dat verschil groot genoeg om het gesprek te sturen, dan staat het bij het gereedschap vermeld. De assistent kan dan de goedkope weg kiezen wanneer die het antwoord ook geeft.