One messaging annotation runs unchanged across 13 brokers, and a Vault-backed catalog of 25 connection types reaches every database, endpoint, file server and object store you integrate with — so switching infrastructure is a config change, not a refactor.
You may see this described as "Kafka across 13 brokers." What it means: the same @NucleusListener and @NucleusPublish code runs against 13 different messaging systems. Your listener never knows which one is on the other end.
@NucleusListener( connector = "orders", topic = "${orders.topic}", format = MessageFormat.JSON, mode = ConsumeMode.QUEUE ) public void onOrder(Order o) { // first parameter type drives deserialization — no manual JSON handling }
Every adapter implements the same SPI and mirrors the reference Kafka adapter's full feature set — three producer reliability tiers, manual-ack consume with dead-letter routing, keyed and headered listeners, batch and tombstone publish, and auto-reconnect.
Where the messaging layer abstracts brokers, the integration connector service abstracts everything you connect out to — 25 connection types in a typed, client-scoped catalog.
HTTP/HTTPS endpoints with typed request/response — the transport behind a workflow's CALL_SERVICE REST step.
JDBC datasources — query and execute against any relational database through one profile.
FTP / SFTP file transfer, plus file watchers that let a workflow wait for a file to arrive.
S3 / MinIO-compatible object stores for upload, download and delete on standardized paths.
Provider-agnostic LLM access — Anthropic and OpenAI built in, multimodal, with classified errors and retries.
Remote command execution over SSH against registered hosts.
SMTP endpoints for the transactional mail pipeline.
Raw sockets and SNMP agents — for the long tail of systems that don't speak HTTP.
Secrets never live in a config file or a payload — they're stored in HashiCorp Vault (KV v2) and decrypted only at the moment a session opens. The raw native client is always available for anything the cataloged operations don't cover.