Modulair ERP-platform voor de sierteelt
Lead architect & ontwikkelaar
Architectuurdiagram met drie lagen. Bovenaan drie geïsoleerde klantomgevingen, elk met een eigen database — dit visualiseert de multi-tenant opzet. In het midden een gedeelde shell-applicatie die is opgebouwd uit losse modules: voorraad, inkoop, verkoop, afhandeling, klanten, e-mail en boekhouding. Onderaan een centrale OAuth2 token-broker die de authenticatie regelt richting vier externe systemen: de sector-API voor de sierteelt, twee boekhoudpakketten en Microsoft 365.
Kernpunten
- Modulaire packages per klant samengesteld in één shell-applicatie
- Tenant-isolatie met een geautomatiseerde one-click kloonflow voor nieuwe omgevingen
- Centrale OAuth2 token-broker voor alle externe koppelingen
- Eigen orkestratie-dashboard voor schema-sync, publicatie en routegeneratie
- Aansturing van ontwikkelaars via vastgelegde architectuurregels
- Probleem
- Tijdens het ontwikkelen van maatwerk ERP systemen merkte dit bedrijf dat zij repeterende code schreven en ontwikkelen lastiger werd naarmate de projecten groter werden. Ze moeten maatwerk kunnen blijven leveren omdat dit een van hun unique selling points is, dus er mag geen monoliet ontstaan. Daarnaast moet de ontwikkeling algemener worden waardoor stukken software per project wel hergebruikt kan worden.
- Aanpak
- Als lead architect ontworpen en gebouwd: een modulair platform waarin functionaliteit als losse, geversioneerde packages bestaat die per klant worden samengesteld in een shell-applicatie. Metasoftware gebouwd die elke klant zijn eigen geïsoleerde databaseomgeving en software geeft, via een zelfgebouwde orkestratie-dashboard. Een centrale OAuth2 token-broker ontwikkeld die de authenticatie naar externe diensten namens de klantomgeving centraal regelt. Architectuurregels vastgelegd, waardoor meerdere ontwikkelaars tegelijk aan de software kunnen blijven werken.
- Resultaat
- Meerdere klanten draaien live in productie, elk in een eigen omgeving, met koppelingen naar de sector-API van de sierteelt, boekhoudpakketten en Microsoft 365. Een nieuwe klantomgeving uitrollen is een herhaalbare, gedocumenteerde procedure geworden in plaats van handwerk. Meerdere losse modules kunnen nu worden samengebracht in een klantspecifieke omgeving. Dit wordt nu systematisch bijgehouden inclusief versiegeschiedenis.
- TypeScript
- Supabase/PostgreSQL
- OAuth2
- npm packages
- Row Level Security


