Skip to content

Architecture

ppodsednik edited this page Jan 8, 2026 · 6 revisions

Architecture

Mermaid sequence diagram architektury

sequenceDiagram
    participant ExtApp as External App
    participant Manager as Manager REST API
    participant Worker as Worker
    participant JVM as External JVM (Plugin)

    ExtApp->>Manager: schedule(profil, payload)
    Worker->>Manager: getNextScheduledProcess()
    Manager-->>Worker: process + payload
    Worker->>JVM: start PluginStarter with payload
    JVM-->>Worker: execution result
    Worker->>Manager: update process state (RUNNING, FINISHED, FAILED...)
Loading

Manager

  • Tomcat REST aplikace se Swagger dokumentací
  • Registry:
    • pcp_node – registrované Workery
    • pcp_plugin – registrované pluginy
    • pcp_profile – profily pluginů
  • Scheduling:
    • externí aplikace volají schedule → proces PLANNED
    • Worker si proces vyzvedne → NOT_RUNNING
    • Worker spouští JVM → RUNNING → reportuje stav → FINISHED/FAILED/KILLED
  • Batch / subprocesy:
    • Plugin může sám schedulovat další procesy
    • Manager preferuje batch affinity pri vyberu procesu ke zpracovani
  • REST endpointy pro informace z tabulek, download logů, delete/kill procesů
  • Dashboard UI

Databázové tabulky

Manager používá několik hlavních tabulek v databázi:

Tabulka Popis
pcp_node Registrované Workery a jejich metadata
pcp_plugin Registrované pluginy
pcp_profile Profily pluginů včetně JVM parametrů
pcp_process Naplánované a běžící procesy, jejich stav, batch_id, payload

Worker a pluginy

  • Worker = framework + pluginy – Worker je aplikační framework, který poskytuje běhové prostředí:
    • Polling smyčka, REST API, logování
    • PluginStarter a PluginContext pro spuštění pluginů v separátním JVM
  • Plugin – konkrétní úloha, kterou Worker dokáže spustit (např. import, index)
  • Profil – konfigurace spuštění pluginu, obsahuje JVM parametry
  • Worker načte profile.json každého pluginu při startu a registruje schopnosti u Managera
  • Polling workflow:
    • Worker se dotazuje Managera na naplánované procesy (getNextScheduledProcess)
    • Spustí externí JVM pro daný plugin
    • Reportuje stav procesu zpět do Managera

Odkazy: Home, Plugin Build & Worker Build, Running the Platform

Clone this wiki locally