Orbito - Dokumentacja modułówOrbito - Dokumentacja modułów
Wprowadzenie
Pierwsze kroki
API
Komunikacja
Widoki
Wdrożenie
Społeczność
For AI agents
Wprowadzenie
Pierwsze kroki
API
Komunikacja
Widoki
Wdrożenie
Społeczność
For AI agents
  • Komunikacja między modułami

    • Komunikacja między modułami
    • Core.callModule – bezpośrednie wywołania
    • Hooki – komunikacja luźno powiązana

Komunikacja między modułami

Moduły w Orbito są od siebie fizycznie odizolowane – każdy działa w osobnym kontenerze Docker i nie ma bezpośredniego dostępu do kodu ani pamięci innego modułu. Cała komunikacja między modułami przechodzi przez serwer Orbito, który pełni rolę brokera.

Platforma oferuje dwa uzupełniające się mechanizmy komunikacji.

Dwa modele komunikacji

Core.callModule – wywołanie bezpośrednie

Wywołanie konkretnej metody w konkretnym module. Wywołujący zna identyfikator docelowego modułu i czeka na wynik.

const result = await Core.callModule('core/orders', 'status.search', { orderId });

Użyteczne gdy:

  • wywołujący potrzebuje danych od konkretnego modułu,
  • zależność między modułami jest świadoma i celowa,
  • potrzebna jest odpowiedź synchroniczna.

Hooki – wywołanie rozgłoszeniowe

Platforma wywołuje wszystkie moduły, które zarejestrowały obsługę danego zdarzenia. Wywołujący nie wie (i nie musi wiedzieć), które moduły odpowiedzą.

// Wywołanie – moduł core/orders pyta o dostępnych przewoźników
const carriers = await Core.execHook('core.shipping.getCarrier', { order });

// Obsługa – moduł integracji z DPD odpowiada na hook
Core.registerHook('core.shipping.getCarrier', async ({ order }) => {
  return { carrierId: 'dpd', label: 'DPD', price: 9.99 };
});

Kontekst firmy

Oba mechanizmy działają wyłącznie w obrębie jednej firmy i nie przyjmują companyId – platforma ustala go z tożsamości połączenia. Odbiorca wie, która instalacja modułu go wywołała (ctx.caller w metodach, this.caller w hookach), a gdy firma ma kilka instalacji modułu docelowego, wywołanie adresuje się po instanceId przez Core.callInstanceMethod. Szczegóły w Kontekst firmy i instancji.

Użyteczne gdy:

  • rdzeń systemu chce zebrać dane od wszystkich zainstalowanych integracji,
  • liczba modułów odpowiadających nie jest z góry znana,
  • chcesz umożliwić rozszerzanie zachowania systemu bez modyfikacji istniejących modułów.

Kiedy użyć callModule, a kiedy hooków?

SytuacjaMechanizm
Potrzebujesz danych od konkretnego modułu (np. szczegóły zamówienia z core/orders)Core.callModule
Ogłaszasz zdarzenie i zbierasz odpowiedzi od dostępnych integracjiHooki
Chcesz wywołać akcję w wielu modułach jednocześnie (np. powiadomienie o nowym zamówieniu)Hooki
Implementujesz integrację z zewnętrznym serwisem i chcesz udostępnić ją innym modułomHooki (registerHook)
Jeden moduł jest wyraźną zależnością drugiego (np. moduł faktury korzysta z modułu klientów)Core.callModule
Ostatnio zaktualizowano:: 29.07.2026, 09:25
Contributors: Wiktor Koźmiński
Next
Core.callModule – bezpośrednie wywołania