---
title: "De toestand die domeinagents lezen: Paimon voor de werkrij, de voorraad en goedkeuringen"
url: "https://hurukan.com/nl/blog/de-toestand-die-agents-lezen-paimon"
description: "Een domeinagent heeft de toestand van nu nodig, geen nachtelijke kopie. Hoe de laag Data die in Apache Paimon bijhoudt, en waarom agents alleen voorstellen."
---

# De toestand die domeinagents lezen: Paimon voor de werkrij, de voorraad en goedkeuringen

6 oktober 2026·4 min leestijd·Redactie

Een planner van achteren gezien aan een statafel in een rustig expeditiekantoor, één breed scherm met een abstract blauw-grijs bord van wachtende rijen dat wordt bijgewerkt terwijl ze kijkt, een dunne blauwe statusstrook langs de bovenrand van het bureau

Een inkoopagent krijgt de vraag een bijbestelling voor te bereiden voor een component dat opraakt. Om dat goed te doen heeft hij de voorraadpositie in drie magazijnen nodig, de openstaande klantorders die er een deel van reserveren, de inkomende leveringen die al onderweg zijn, en de huidige risicostatus van de leverancier. Elk daarvan is in het afgelopen uur veranderd. De nachtelijke kopie in het datawarehouse zit er bij alle vier naast. De productietabellen van de modules kloppen, maar een agent die ze op schaal leest is de snelste manier om de mensen die in die modules werken te vertragen.

Dit is de kloof tussen de twee geheugens van een bedrijfsbesturingssysteem: het register, dat elke gebeurtenis voorgoed bewaart, en de actuele toestand, die is hoe de dingen er nu voor staan. De [pijlertekst](https://hurukan.com/nl/blog/de-actuele-toestand-en-het-register-twee-geheugens) beschrijft beide. Deze gaat over de tweede, en over het tabelformaat dat de laag Data ervoor gebruikt. De laag Data is in aanbouw; wat volgt is hoe ze wordt ontworpen.

## Wat een domeinagent werkelijk leest

De agents van Hurukan zijn domeinagents: één voor inkoop, één voor klantenservice, één voor de werkrij in bedrijfsvoering, enzovoort. Elk werkt vanuit een klein aantal toestandstabellen die vragen in de tegenwoordige tijd beantwoorden.

**De werkrij.** Welke opdrachten zijn vrijgegeven, welke zijn geblokkeerd en waarom, welke machine of welk team is vrij. Gevoed door de bedrijfsvoeringsmodule naarmate opdrachten van status veranderen.

**Voorraad en reserveringen.** Aanwezige hoeveelheid per artikel en locatie, minus wat openstaande orders al hebben geclaimd, plus wat onderweg is. Gevoed door gebeurtenissen uit [Voorraad en logistiek](https://hurukan.com/nl/modules/voorraad-en-logistiek), verkoop en inkoop.

**De goedkeuringsinbox.** Elk voorstel dat een agent heeft gedaan, met zijn bronnen en zijn risico, en of een mens al heeft besloten. Gevoed door de agents zelf en door de mensen in [Besluiten en taken](https://hurukan.com/nl/modules/besluiten-en-taken).

Geen van deze tabellen is een kopie van de database van een module. Elk wordt opgebouwd uit de gebeurtenissen die de modules uitzenden, en die het register ook bewaart. De toestandstabel is een afgeleide, altijd actuele weergave van het register; het register is het bewijs erachter.

## Waarom dit een Paimon-tabel is

Een toestandstabel verandert duizenden keren per uur per sleutel: hetzelfde artikel, dezelfde opdracht, hetzelfde voorstel, steeds opnieuw bijgewerkt. Tabelformaten die zijn gebouwd rond het toevoegen van nieuwe bestanden gaan daar slecht mee om, want elke update wordt een nieuw bestand en de tabel verdrinkt in kleine bestanden. Apache Paimon is precies voor dit geval ontworpen. Zijn tabellen met primaire sleutel slaan rijen op in een LSM-boom, gesorteerd op sleutel binnen een bucket, zodat een stroom updates op dezelfde sleutels compact blijft en een lezer altijd de laatste versie van elke rij ziet ([tabeltypen](https://paimon.apache.org/docs/master/concepts/table-types/), gecontroleerd op 21 oktober 2026).

Twee functies van Paimon doen werk dat anders code zou zijn. Een [merge engine](https://paimon.apache.org/docs/master/primary-key-table/merge-engine/overview/) bepaalt wat er gebeurt als een nieuwe rij binnenkomt voor een bestaande sleutel: vervangen, de eerste houden, aggregeren, of alleen de velden invullen die zijn binnengekomen. De voorraadtabel gebruikt die laatste: voorraad schrijft de aanwezige hoeveelheid, verkoop schrijft de gereserveerde hoeveelheid, inkoop schrijft de inkomende hoeveelheid, en de tabel houdt alle drie in één rij zonder dat een module van de andere weet. Een [changelog producer](https://paimon.apache.org/docs/master/primary-key-table/changelog-producer/) zendt elke wijziging van de tabel uit als een eigen stroom, zodat een agent verderop kan reageren op “voorraad onder het bestelpunt gezakt” in plaats van te blijven bevragen.

De huidige release is Paimon 2.0.0 van 7 augustus 2026 ([releasecatalogus](https://release-catalog.apache.org/paimon/), gecontroleerd op 21 oktober 2026). Flink schrijft en leest hem, en de [lookup join](https://paimon.apache.org/docs/master/flink/sql-lookup/) laat een streamingtaak een gebeurtenis verrijken met de actuele toestand van een andere tabel — een nieuwe order met de voorraad die ze reserveert — zonder omweg naar iets anders. Spark, Trino, Hive, StarRocks en Doris lezen dezelfde tabellen ([engines](https://paimon.apache.org/docs/master/engines/overview/)).

## De agent leest de toestand en schrijft alleen een voorstel

De grens is belangrijker dan het formaat. Een domeinagent leest de toestandstabellen vrij. Hij schrijft niet naar een module, en hij schrijft ook niet naar de toestandstabel. Wat hij produceert is een voorstel: een opgestelde bijbestelling met de rijen die hij las, de regel die hij toepaste en het risico dat hij ziet. Het voorstel belandt in de goedkeuringsinbox. Een mens besluit. De module voert het besluit uit, zendt de gebeurtenis uit, en de toestandstabel verandert omdat de gebeurtenis is vastgelegd — niet omdat de agent haar heeft veranderd.

Dit houdt de twee geheugens eerlijk. Als agents de toestand rechtstreeks zouden schrijven, zou de toestand dingen bevatten die in geen enkele module zijn gebeurd en nooit zijn vastgelegd. Door de toestand te lezen en voorstellen te schrijven, gaat elke verandering van wat het bedrijf voor waar houdt nog altijd via een mens en via het register.

Het beantwoordt ook de auditvraag. Paimon bewaart momentopnamen, en een [tag](https://paimon.apache.org/docs/master/maintenance/manage-tags/) zet er een vast zodat hij niet verloopt. Wanneer een voorstel maanden later in twijfel wordt getrokken, toont de momentopname van het moment waarop de agent de tabel las precies de voorraad, de rij en de openstaande orders die hij zag. Het besluitenlog bevat de redenering; de momentopname bevat het bewijs.

## Seconden, minuten of vannacht

Niet elke toestand hoeft een Paimon-tabel te zijn die door een stroom wordt gevoed. De goedkeuringsinbox moet tot op de seconde actueel zijn, want een mens zit erin te wachten. De werkrij moet tot op de minuut actueel zijn, want een machine wacht. Voorraad voor bijbestellen is een besluit dat een paar keer per dag wordt genomen; een toestand die een paar minuten achterloopt is prima. De risicostatus van leveranciers verandert wekelijks.

Alles naar seconden duwen kost voortdurende compactie, een streaming-engine die nooit slaapt en een beheerteam om beide gezond te houden. Daarom vraagt de laag Data voor elke toestandstabel welk besluit ervan afhangt en hoe snel dat besluit werkelijk verandert — en alleen de tabellen die seconden nodig hebben krijgen ze. “Realtime” is geen eigenschap van het platform; het is een budget dat per tabel wordt besteed.

## Een test die u vandaag kunt doen

Kies één besluit dat iemand in uw bedrijf meerdere keren per dag neemt: een inkoop goedkeuren, een opdracht vrijgeven, een leverdatum toezeggen. Schrijf elk getal op waarnaar diegene kijkt voordat hij besluit en, ernaast, waar het vandaan komt en wanneer het voor het laatst is ververst.

Als meerdere van die getallen uit verschillende systemen komen en op verschillende momenten zijn ververst, doet de persoon de koppeling al in zijn hoofd, vanuit een toestand die op geen enkel moment consistent was. Dat is de tabel die een domeinagent als eerste nodig zou hebben — en de tabel om te ontwerpen voordat een agent wordt gevraagd iets te besluiten.

-   Apache Paimon
-   domeinagents
-   actuele toestand
-   goedkeuringsinbox
-   laag Data

## Lees verder

-   [Een identiteit voor mensen en agents: wie wat mag doen](https://hurukan.com/nl/blog/een-identiteit-voor-mensen-en-agents)
-   [De actuele toestand en het register: twee geheugens van een bedrijfsbesturingssysteem](https://hurukan.com/nl/blog/de-actuele-toestand-en-het-register-twee-geheugens)