Case study

Data-Exchange Portal

Case studies
Dutch verzuim SaaS
Year
2021-2022
Stack
Laravel · PHP · jQuery · Bootstrap
Cover van de Data-Exchange Portal-case study
Resultaat Binnen een week live werd het de vaste integratieroute om partners op schaal aan te sluiten, met honderdduizenden records per dag.

De uitdaging

De kern was een mappingprobleem: binnenkomende data kwam binnen in het formaat van elk extern systeem en moest naar dat van ons worden vertaald voordat onze API het accepteerde. Het lastige zat niet in het volume, maar in het feit dat de data niet te vertrouwen was op schoonheid of consistentie, en dat er weinig tijd was om ervoor te bouwen.

Sommige verschillen waren subtiel genoeg om door een naïeve vertaling te glippen. Een terugkerend geval was de betekenis van datumranges: het ene systeem behandelde de einddatum als exclusief ("tot"), het andere als inclusief ("tot en met"). Zet je dat over zonder er rekening mee te houden, dan valt elk betrokken record een dag verkeerd, een fout die nooit een melding geeft. Het levert stilletjes een verkeerd dossier op. Veldregels liepen op dezelfde manier uiteen: een veld dat bij ons verplicht was, kon bij hen optioneel of leeg zijn, en andersom.

Daarbovenop was sommige binnenkomende data simpelweg onjuist of corrupt, soms met een toestand die in ons eigen systeem helemaal niet kon bestaan. De laag mocht dus niet klakkeloos vertalen. Hij moest onmogelijke invoer herkennen en weigeren in plaats van er doorheen te duwen.

En dat alles gebeurde op een bewegend doel. Er bleven nieuwe mapping-uitzonderingen opduiken terwijl partners al live in productie stonden, wat betekende dat de mapping werd gefixt en de al weggeschreven data werd hersteld, rechtstreeks op de productieserver, onder echte klanten.

Wat ik heb gebouwd

  • De mappinglaag die de binnenkomende data van elke partner omzette naar het canonieke formaat dat onze API accepteerde, ontworpen en in ongeveer een week live gezet onder een strakke deadline.
  • Een validatie- en foutafhandelingslaag binnen die mapping, die botsende regels tussen de twee systemen met elkaar verzoende (inclusieve versus exclusieve datumranges, verschillen in verplichte en lege velden) en corrupte of onmogelijke invoer weigerde in plaats van er een dossier mee te vervuilen.
  • Integratiebeheer bovenop de pijplijn: tooling om de partnerintegraties en hun data-uitwisseling in te richten en te bewaken naarmate hun aantal groeide.
  • Full-stack werk aan deze functionaliteit en het bredere platform, van de Laravel/PHP-backend tot de frontend in jQuery en Bootstrap.
Interesse in dit soort werk?

Laten we praten over jouw project.

Start een vergelijkbaar project →