Klantcase · POM
POM: een dagelijkse verversing in minuten, niet in dagen
POM verstuurt miljoenen betaalverzoeken per maand, en de database groeit met honderden gigabytes. Wij hielpen die van een eigen server naar de cloud te brengen, bouwden er een dataplatform op Azure Databricks omheen, en lieten de dagelijkse verversing alleen laden wat veranderd is. Een volledige load ging van een hele dag naar een paar minuten.
Een echt klantproject. De aantallen rijen en de doorlooptijden in de voorbeelden zijn illustratief.
Miljoenen betalingen, één groeiende database
POM helpt organisaties betaald te krijgen. Het platform maakt en verstuurt facturen, biedt betaallinks, QR-codes en betalingsregelingen, en verzorgt het incassoproces, allemaal onder de eigen naam van de klant. Meer dan 150 klanten gebruiken het, van woningcorporaties en verzekeraars tot energieleveranciers, telecomaanbieders, waterbedrijven en overheden.
Dat telt op. Volgens POM verstuurt het platform meer dan 8,5 miljoen betaalverzoeken per maand, en elk verzoek, elke herinnering, betaling en regeling wordt een rij in een database. Maand na maand groeit die database, met honderden gigabytes.
Van de serverruimte naar de cloud
Ons werk begon met een verhuizing. De database van POM draaide op een eigen server, en wij hielpen bij de overstap naar de AWS-cloud. Daaromheen ontwierpen en bouwden wij een modern dataplatform op Azure Databricks, waarin de verschillende bronsystemen samenkomen op één centraal platform. Zo werd de data betrouwbaarder, schaalde die mee met de groei van POM, en had de rapportage één bron om uit te putten.
Waarom een volledige load niet meer past
De eenvoudigste manier om een dataplatform actueel te houden, is elke nacht alles opnieuw kopiëren. Met een kleine database werkt dat. Met honderden gigabytes niet: een volledige herlaadbeurt kost het grootste deel van een dag, dus een dagelijkse verversing is onmogelijk, en elke maand groei maakt het erger. Schuif en zie hoe snel de volledige load de nacht te kort komt.
Alleen de rijen die veranderd zijn
Dus bouwden wij een laadsysteem dat zo weinig mogelijk doet, in drie stappen. Waar de bron kan vertellen welke rijen sinds de vorige load veranderd zijn, importeert het platform precies die rijen en verder niets.
Waar dat onbekend is, valt het niet terug op alles kopiëren. Het vergelijkt een vingerafdruk van elk blok rijen met die van de vorige keer, en leest alleen de blokken die verschillen. En voor berekeningen die hun data meteen nodig hebben, werkt het op aanvraag: voordat een berekening draait, brengt het alleen de rijen die die berekening nodig heeft bij. Probeer elke aanpak op de tabel hieronder.
Elke rij wordt opnieuw gelezen en geschreven, veranderd of niet.
- Veranderd sinds de vorige load
- Gelezen uit de bron
- Gewijzigde rij naar het platform geschreven
- Ongewijzigde rij toch opnieuw geschreven
Van een hele dag naar een paar minuten
Het resultaat: een volledige verversing teruggebracht van een hele dag naar enkele minuten. Daarmee werden dagelijkse verversingen weer mogelijk, hoe hard de database ook groeit, en kreeg de organisatie rapportage waar ze elke ochtend op kon vertrouwen.
Wat wij opleverden
- De overstap van de database van POM van een eigen server naar de AWS-cloud.
- Een modern dataplatform op Azure Databricks, van ontwerp tot oplevering.
- Meerdere bronsystemen samengebracht op één centraal platform, betrouwbaarder en klaar om te schalen.
- Een laadsysteem dat alleen gewijzigde rijen importeert, vingerafdrukken vergelijkt waar wijzigingen onbekend zijn, en rijen op aanvraag bijwerkt voor berekeningen.
- Betere rapportage, voor beslissingen op actuele data.
Groeit uw data uw nachtelijke load voorbij?
Wij bouwen dataplatforms die de groei bijhouden, zonder elke nacht alles opnieuw te kopiëren.