Fluxtion is the logical layer. You author event-driven logic in Java; inferred orchestration compiles it to a single, portable .class with audit and replay-equivalence built in.
Mongoose is the physical layer. Same compiled class — threading, transport, persistence, and time sources around it are plugged in by configuration. The processor doesn't change when you move from your laptop to production; the deployment descriptor does. Mongoose, Flink, Kafka, Chronicle and Aeron are wires and hosts; Fluxtion is the deterministic logic the wires carry.
.class. Mongoose is the
production-grade container; the playground and any embedded JVM consume the
identical artifact.The processor compiles once. Moving from playground to Mongoose swaps the feeds, the
sinks, the idle strategy, and the persistence story — all in the Mongoose deployment
descriptor. Your graph, your nodes, your generated Processor.java do not
change.
| Concern | Playground | Mongoose (production) |
|---|---|---|
| Generated processor | Identical · same .java + .class + .graphml | |
| Event types & nodes | Identical · your authored Java doesn't change | |
| Replay determinism | Identical · same input ordering ⇒ byte-equal sink output | |
| Audit surface | Identical · same per-event records, same hook points | |
| Feeds (event sources) | InMemoryEventFeed, file feed via DSL connector | aeron-feed · chronicle-queue-feed · kafka-feed · file-feed · admin gates · scheduled timers |
| Sinks | in-process callbacks · FileMessageSink | kafka-sink · postgres-append · chronicle-queue-sink · custom plugins |
| Threading | single-threaded · SleepingMillisIdleStrategy(1) | agent threads · BusySpinIdleStrategy / YieldingIdleStrategy |
| Persistence | HashMap in JVM | snapshot plugin · checkpoint replay · cold-start from log |
| Audit destination | stdout [FLUXTION_AUDIT] blocks | OpenTelemetry · Splunk · regulator trail · multi-auditor |
| HA / scale | single JVM | hot-warm pair (replay-determinism is the failover correctness contract) · sharding by key |
fluxtion-runtime — no compiler, no codegen at startupAgentRunner groupAuthor and iterate in the playground. The processor compiles, the JUnit tests run, you see
the audit and the replay. When you're ready for production, the same generated Processor.class ships in your release jar; Mongoose's deployment descriptor
wires it to your real feeds, sinks, and services. There is no “production rewrite”
step — there isn't one to do.
The same property carries the other direction too: when a production incident reproduces oddly, pull the event log, replay it against the same processor in the playground, watch the audit unfold. The replay path is the debugger.
Author-side examples — DSL, imperative, Spring XML, vendor JARs, every authoring channel
covered. Output is the portable .class.
Runtime-side examples — how to wire processors into Mongoose, configure feeds and sinks, register services, run the admin plane.
See also: Code-gen at a glance — the authoring channels × generation modes matrix that feeds into the compile box above.