Odolná integrace B2B portálu s ERP jádrem prostřednictvím ESB
V podnikových projektech se B2B portály pro obchodní partnery integrují s monolitními systémy jako ERP nebo Tririga. Přímé připojení vede k race condition, kdy souběžné změny od uživatele portálu a administrátora jádra přepisují data. Řešením je ESB jako mezivrstva s událostmi řízeným modelem pro obousměrný asynchronní přenos.
ESB izoluje portál od vnitřní struktury jádra: přijímá JSON, transformuje do SOAP/XML nebo specifického REST, ukládá do fronty (RabbitMQ, Kafka) při nedostupnosti. Jádro zůstává single source of truth – změny v něm spouští webhook v sběrnici pro aktualizaci portálu.
Problémy synchronní point-to-point integrace
Synchronní volání způsobují:
- Race condition: Poslední požadavek přepíše předchozí.
- Šíření výpadků: Záloha nebo aktualizace jádra rozbije portál.
- Bezpečnostní rizika: Otevření API navenek bez patřičné ochrany.
Ve scénáři dodavatel změní kvótu na portálu (z 10 na 50 objektů), administrátor – v jádře (na 5 kvótu pokutě). Bez ukládání do fronty se data ztratí.
Architektura přes ESB: tok dat
Tok dat:
- Portál odešle JSON do ESB.
- ESB validuje, transformuje payload, zařadí do fronty.
- Při dostupnosti jádra – doručení a potvrzení.
- Změny v jádru → spouštěč → webhook v ESB → aktualizace portálu.
Toto zajišťuje:
- Izolaci rozhraní.
- Asynchronnost s politikou opakování.
- Odolnost při špičkovém zatížení.
Dokumentace v kódu: protokol AOK
Pro udržení architektury používají AOK – pas v JSDoc komentářích klíčových modulů. Zachycuje účel, architekturu, integrační body, soulad s SOLID.
Příklad pro modul synchronizace kvót:
/**
* ====================================================================
* | AOK PASSPORT: MODUL SYNCHRONIZACE KAPACITY |
* ====================================================================
*
* @ÚČEL
* Zajištění obousměrné synchronizace parametrů „Kvót"
* mezi Osobním účtem obchodního partnera a kartou v Core systému.
*
* @ARCHITEKTURA
* Přijímá JSON payload od Portálu obchodního partnera.
* Validuje hodnoty (min/max) podle nastavovací tabulky.
* Iniciuje aktualizaci záznamu v tabulce (obchodní objekt).
* Při změně dat ze strany obchodního administrátora spouští
* `Pozadový proces pro přenos dat zpět přes Webhook.`
*
* @INTEGRACE
* Endpoint: /api/v1/sync_capacity
* Mechanismus ochrany: validace JWT tokenu, šifrování SSL/TLS.
* Zpracování chyb: Při nedostupnosti sběrnice se aktivuje
* `Politika opakování (3 pokusy s intervalem 5 min), poté logování do Kibany.`
*
* @SOULAD_S_SOLID
* Single Responsibility: Modul zodpovídá pouze za synchronizaci dat,
* logika výpočtu hodnocení je izolována v samostatném mikroslužbě.
* ==================================================================== */
AOK minimalizuje onboarding: nový vývojář ihned vidí kontext integrace, validaci, zpracování chyb.
Klíčové komponenty implementace
- Fronty: RabbitMQ/Kafka pro ukládání do fronty.
- Transformace: ESB mapuje JSON → legacy formáty (SOAP, XML).
- Spouštěče: OnSave v jádru pro zpětnou synchronizaci.
- Bezpečnost: JWT, TLS, omezení rychlosti.
- Monitorování: Logy v Kibaně, metriky fronty.
Co je důležité
- Jádro – single source of truth, portál odráží stav přes ESB.
- Asynchronnost zabraňuje výpadkům a race conditions.
- AOK v kódu zajišťuje dlouhodobou udržitelnost.
- Politiky opakování (3 pokusy, 5min interval) pro spolehlivost.
- Izolace snižuje bezpečnostní rizika od externích API.
— Editorial Team
Zatím žádné komentáře.