PlatformArchitectuur
De software-architectuur en infrastructuur van Vink. Van het AX2012 ERP via de microservices tot de webshops, marktplaatsen en B2B-koppelingen, uitgerold in 22 regio's.
Het grote plaatje
Van bron tot klant
Data stroomt in lagen van de bronsystemen naar de doelsystemen. De labels per laag tonen het soort werk, niet de volledige servicelijst. Die staat op de detail-slides hierna.
BronsystemenSYSTEM OF RECORD
AX2012 ERP (Dynamics)Contentserv PIM
↓
BackendADAPTERS · 26
AX2012 API's (klant, order, product, ...)Contentserv / PIMCSV-import & dump-verwerking
↓
InterfaceSYNC / ETL · 31
Productsync (Sylius, Shopware, Algolia)Klantsync (Creatio)Facturatie (Peppol / Billit)Orders, shipments
↓
BusinessDOMEINLOGICA · 17
Winkelmand, orders, offertesPricing engineKlanten, adressen, gebruikersBetaling, facturatie, verzendingZagen op maat, notificaties
↓
GatewayEDGE / TOEGANG · 17
API-gatewayB2B: EDI, Ariba, MercateoAI: mcp-gatewayMetrics, tracking, channel-export
↓
DoelsystemenBESTEMMING
Sylius webshops (PHP)ShopwareSulu2 CMSAlgolia (zoek)Creatio (CRM)EDI / PeppolMarktplaatsen
Kerncijfers
Het platform in getallen
0+
Microservices
Eigen Go-services, uniek per functie. Niet per regio gedupliceerd.
0
Regio's
Elke regio draait de volledige stack als geïsoleerde tenant.
0
Logische lagen
Backend · Interface · Business · Gateway, elk met één rol.
0
Kubernetes clusters
dev · 2× prod (blue/green) · 2× db · denmark · infra.
0
Webplatformen
Sylius en Shopware webshops, Sulu2 als CMS, bovenop de services.
0%
GitOps gedreven
Alles declaratief via Tanka → ArgoCD. Git is de single source of truth.
De architectuur
Vier lagen, één verantwoordelijkheid elk
/ 01Backend
± 26 services · adapters
Praat rechtstreeks met de bronsystemen. Ontsluit AX2012 (via dumps, webservice en EDI) en Contentserv als schone API's voor de rest van het platform.
- AX2012: webservice, EDI, dumps
- Contentserv / PIM-koppeling
- CSV-import naar Postgres
/ 02Interface
± 31 services · sync
De ETL-laag. Duwt en trekt data tussen het platform en externe systemen: zoek, CRM, facturatie, kanalen.
- Productsync → Sylius, Shopware, Algolia
- Klantsync → Creatio CRM
- Facturatie → Peppol / Billit
- Orders → AX2012, shipments, RPA
- Media via CDN, channel-export
/ 03Business
± 17 services · domein
De commerce-logica zelf: winkelmand, orders, klanten, betalingen, op-maat-zagen. Domein-eigen en herbruikbaar.
- Winkelmand, orders, offertes, quotes
- Klanten, adressen, gebruikers, favorieten
- Betaling, facturatie, verzending
- Zagen op maat (cutting)
- Notificaties, werknemers, jobs
/ 04Gateway
± 17 services · edge
De toegangsrand. Bundelt API's, koppelt B2B-protocollen en levert AI, beelden en tracking aan de buitenwereld.
- api-gateway · mcp-gateway
- EDI · Ariba · Mercateo
- metrics · channel-export
Laag 01 · Backend
De brug naar AX2012
AX2012 is de bron van waarheid. Per regio wordt een dump verwerkt: naar MinIO, geïmporteerd in Postgres en als gRPC-API ontsloten, naast webservice en EDI.
ax2012-customer-api
klanten, contacten, omzet, segmenten
ax2012-address-api
klantadressen ophalen en aanmaken
ax2012-order-api
orders aanmaken (incl. EDI) en ophalen
ax2012-invoice-api
facturen ophalen, inclusief PDF
ax2012-offer-api
prijzen en kortingen voor offertes
ax2012-quote-api
offertes met lijnen (read-only)
ax2012-product-api
producten en prijzen (read-only)
ax2012-stock-api
voorraad per artikel (read-only)
ax2012-prospect-api
prospecten en contacten (read-only)
ax2012-csv-importer
CSV-dumps importeren naar Postgres
ax2012-csv-minio-sync
CSV-dumps synchroniseren naar MinIO
ax2012-dumps-ready
klaar-gemarkeerde dumps verplaatsen
contentserv-api
Contentserv PIM ontsluiten, AMQP-events
contentserv-manager
bulk productattributen via Excel/CSV
ax2012-product-pim-sync
AX2012-producten naar Contentserv
customer-product-mapping
klant-naar-product mappings opzoeken
smartour-api
Smartour leveringsdata ontsluiten
adminsvc
admingebruikers beheren (AD-import)
Laag 03 · Business
De commerce-domeinlogica
Elke service bezit één bounded context, deelt geen database en praat via gRPC. cuttingsvc berekent zaag-op-maat voor plaatmateriaal, een Vink-specialiteit.
cartsvc
winkelwagens met regelitems
ordersvc
orderindiening en -opvraging
customersvc
klanten, EU-btw-validatie (VIES)
productsvc
catalogus, taxonomie, kenmerken
paymentsvc
betalingen via PayNL
invoicesvc
facturen genereren, opslag in S3
offersvc
aanbiedingen, kosten en prijstrappen
quotesvc
offertes (CRUD, bron-ID-tracking)
shipmentsvc
zendingen met notificaties
addresssvc
adressen met deduplicatie
favoritesvc
productfavorieten van klanten
usersvc
accounts, authenticatie, groepen
cuttingsvc
zaagaanvragen, layoutoptimalisatie
notificationsvc
transactionele e-mails (SMTP/Mandrill)
workersvc
werknemersrecords, ID-mapping
product-id-provider
product-ID's mappen intern/extern
ecommerce-mcp
MCP-server: zoeken, cart, details
Laag 02 · Interface
Synchronisatie naar buiten
ETL-services die data tussen het platform en externe systemen synchroniseren: webshops, zoeken, CRM, facturatie en transport.
products-sylius
producten naar Sylius webshop
products-shopware
producten naar Shopware webshop
products-algolia
producten indexeren in Algolia
products-ax2012
productkenmerken naar AX2012 (FTP)
customers-creatio
klanten en orders naar Creatio CRM
peppol-billit
Peppol-facturen via Billit
order-spooler
webshoporders doorspoelen naar AX2012
contentserv-cdn
Contentserv-bestanden naar S3 CDN
smartour-shipments
verzendingen uit Smartour naar shipmentsvc
Laag 04 · Gateway
De toegangsrand
REST-API's voor de webshops, B2B-protocollen, AI-tools en monitoring naar de buitenwereld.
api-gateway
REST-gateway, bundelt business-gRPC
mcp-gateway
backend-tools voor AI-agents (MCP)
edi
EDI-orders (HTTP/IMAP/SSH) naar orders
ariba
cXML PunchOut met SAP Ariba
mercateo
BMEcat-catalogi via FTP
channel-export
catalogi per klant naar kanalen
metrics
order-metrics aggregeren (AMQP/gRPC)
tracking
zending-tracking en unsubscribe
statusmonitor
prod-sites pollen, alerteren bij downtime
imageproxy
productafbeeldingen schalen en cachen
Bovenop het platform
Interne applicaties
Twee Go-applicaties met een Refine / Ant Design-frontend die de business- en gateway-services bundelen voor Vink-medewerkers.
vink-flowsProces-portaal
Go + Refine · draait op dev
Medewerkers starten flows (procedures), krijgen taken toegewezen en handelen die af. Een generieke flow-engine, niet één vast proces.
- YAML-flows met auto-advance (CEL) en RBAC per flow
- Flows nu: ContentServ-onboarding, klantregistratie
- Externe triggers via webhooks, e-mail via notificationsvc
management-backendMyVink admin-dashboard
Go + Refine · beheer-UI
Het beheerdashboard. Bundelt data uit de business- en gateway-services in één admin-UI voor interne gebruikers.
- Klanten, orders, facturen, producten, gebruikers
- AI-chat bovenop mcp-gateway en LiteLLM
- Marketplace-integraties (Odoo PunchOut), versleuteld
- Auth via loginsvc (JWT)
Multi-tenant
22 regio's, één codebase
22regio's live in prod
Eén ApplicationSet vermenigvuldigt elke service over cluster × service × regio. Tien services × zestien dev-regio's = 160 ArgoCD-applicaties, automatisch gegenereerd.
Elke regio heeft eigen databases, feature-flags en endpoints, maar deelt exact dezelfde code en Helm-charts.
Dev + Prod
Alleen Prod
Levering
GitOps van commit tot cluster
Niemand draait kubectl apply met de hand. Een commit in Git is de enige weg naar productie.
01
Git push
Wijziging in de tanka- of deployments-repo op GitLab.
→
02
Tanka / Jsonnet
Evalueert per cluster en genereert ArgoCD Applications & ApplicationSets.
→
03
ArgoCD sync
Detecteert de diff en rolt Helm-charts uit, één app per regio.
→
04
Kubernetes
Images uit de private Docker-registry draaien op Talos-nodes.
Tanka + Jsonnet
Declaratieve config met overerving: platform → base → env → variant.
ArgoCD
GitOps-engine die de gewenste staat continu reconcilieert.
HashiCorp Vault
Secrets via External Secrets gesynct naar elke cluster.
GitLab CI
Bouwt Go-images via Athens module-proxy, pusht naar de registry.
Topologie
De actieve clusters
0pods draaiend
op Kubernetes
over 34 nodes · 4 actieve clusters · live gemeten
Prod en database draaien blue/green. Hieronder de actieve helft.
Developmentdev8
16 dev-regio's
Alle ontwikkelworkloads. Nieuwe services landen hier eerst, nooit rechtstreeks in prod.
518 pods, 11 nodes
Productieprod11
22 regio's
Alle productie-applicaties. De actieve helft van de blue/green-opstelling.
594 pods, 11 nodes
Databasedb5
Postgres-operators
De database-operators en Postgres-clusters voor productie.
129 pods, 7 nodes
Managementinfra4
in-cluster
De infra-cluster: draait ArgoCD, de monitoring-stack en de CI-runners.
129 pods, 5 nodes
Inzicht & intelligentie
Observability & AI-laag
OBSERVABILITY
Prometheus
Metrics & alerting met hysteresis-standaard per cluster.
Grafana
Dashboards over alle regio's en lagen.
Loki
Gecentraliseerde logs, doorzoekbaar per service.
Alertmanager
Alerts gekoppeld aan runbooks, deels autonoom oplosbaar.
AI & DATA
mcp-gateway
Zelf-beschrijvende tool-catalog; elk metrics-endpoint wordt automatisch AI-tool.
LiteLLM
Centrale LLM-gateway met virtual keys per service.
Langfuse
Tracing & observability voor alle AI-calls.
gateway/metrics
Centrale metrics-store voor sync- en import-data, bevraagbaar via mcp-gateway.
Fundament
De technologiekeuzes
Talen
runtime
- Go · de meeste microservices
- PHP · Sylius, Shopware, Sulu
- Jsonnet · infra-config
Communicatie
tussen services
- gRPC + Protobuf (protorepo)
- REST via api-gateway
- RabbitMQ · events & queues
Data
opslag
- PostgreSQL & MySQL
- Redis · cache
- Meilisearch · zoeken (nieuw)
- Elasticsearch & Algolia (bestaand)
- MinIO · object storage
Platform
runtime infra
- Terraform · infra-provisioning
- Kubernetes op Talos
- Helm-charts per service
- NGINX ingress · MetalLB
Delivery
CI/CD
- GitLab CI + Athens proxy
- ArgoCD GitOps
- Renovate dependency-updates
Beheer
platform-diensten
- Vault · secrets
- cert-manager · TLS
- Route53 · DNS (AWS)
- CDN op AWS
- External Secrets · sync
POC · marktvergelijking
Als het een SaaS-product was
Gartner is een onderzoeksbureau; hun Magic Quadrant zet leveranciers af op uitvoeringskracht (verticaal) en volledigheid van visie (horizontaal). Hypothetisch geplaatst tussen bekende commerce-platformen.
ChallengersLeaders
Niche PlayersVisionaries
Volledigheid van visie →
Uitvoeringskracht →
Salesforce Commerce
BigCommerce
SAP Commerce
commercetools
Adobe Commerce
Shopware
Akeneo PIM
Vink Platform
Illustratief, geen echte Gartner-publicatie. Het Vink-platform is een intern platform, geen commercieel SaaS-product.
POC · live topologie
De pod-sterrenkaart
Elke ster is een echte pod in prod (prod11), db5 of infra4, gegroepeerd per namespace. De lijnen tonen de communicatie tussen de lagen. Sleep om te pannen, scroll om te zoomen, hover een cluster.
datastroom (gRPC)
beheer (ArgoCD)
databases
infra
sleep · scroll · hover
90+ services.
22 regio's.
Gelaagde microservices, per regio uitgerold, beheerd via GitOps. Een wijziging gaat via Git naar ArgoCD en zo naar de clusters.
90+ services
4 lagen
7 clusters
Blue / Green prod
ArgoCD + Tanka