p1 — a Chenile process deployment, end to end
A batch process splits into items, each item executes on a worker, and the results aggregate back. One p1Server (the brain) and one p1Worker (the muscle), decoupled over Kafka. Press Play .
p1Server · the brain
Kafka
p1Worker · the muscle
Cron / POST /trigger
trigger-service
DISPATCH_TRIGGER → ProcessCreate
ProcessManager · STM
batch / item state machine
durable outbox
START_WORKER
q-based starter
publishes WorkerDto
service registry
advertises processService
PostgreSQL
topic
p1-work
group p1-workers
Kafka listener
ProcessWorkListener (headless)
BatchSplitter
ItemExecutor
BatchAggregator
process-delegate
callback via registry
callback: splitDone / doneSuccessfully / aggregationDone — discovered via service registry
▶ Play
‹ Prev
Next ›
↺ Reset
Speed
0.75×
1×
1.6×
0
Ready Press Play. A batch process is created, splits into three items, each item executes on p1Worker, and the batch aggregates the results.
Process state
AggregatedResult<ItemOutput>: 0 / 3 collected
p1Server (STM · outbox · registry · Postgres)
p1Worker (listener · workers · delegate)
Kafka p1-work
WorkerDto out
result callback
Companion to the process deployment tutorial on chenile.org. The server never runs business logic; the worker never touches the process database. Everything between them is one Kafka topic and a registry-discovered callback.