

LittleHorse delivers Business‑as‑code for Confluent customers
Orchestrate microservices with durable, event‑driven workflows on Confluent Kafka. Versioned changes, end‑to‑end visibility, and exactly‑once execution—without coupling services.



Why LittleHorse on Confluent
Complete your streaming journey with durable orchestration and elite observability.
Exactly‑once steps, retries, timeouts, persisted state.
Trigger from Kafka topics and timers without coupling.
Trace every run end‑to‑end. Search state for instant RCA.
Sagas, outbox, compensations, DLQs—ready day one.
Reuse HTTP/gRPC services. No rewrites required.
Run with Confluent Cloud or self‑managed clusters.
Templates and guardrails to scale adoption safely across teams.
Publish workflows as APIs; accelerate new use cases on Kafka.
Move from batch processing to real-time event-driven workflows.
Coordinate services while events flow through Kafka
LittleHorse adds workflow durability, timing, and visibility on top of your Kafka‑centric systems. Services stay decoupled. Workflows provide guarantees.
- Trigger from topics, timers, and connectors
- Versioned workflows for backward‑compatible change
- Retries, DLQs, compensations out of the box
Use cases on Confluent
High‑value patterns customers ship with LittleHorse and Kafka.
Reserve, charge, ship with compensations and SLAs.
Upsert from DB to Kafka, enrich, fan‑out to systems.
Correlated replies, timeouts, retries, DLQs built‑in.
Escalations, expirations, and auditability for SLAs.
Event‑driven ops with governed rollouts and versioning.
Detect, coordinate remediation, and notify in seconds.
Where you are on the Confluent journey
Map your stage to the next best step—with LittleHorse amplifying your Confluent investment.
Validate use cases with a runnable demo. Quickstart durable workflows triggered by Kafka.
Make pilots production‑credible: retries, timeouts, DLQ, end‑to‑end traces—no custom glue.
Run multi‑step flows with SLAs and versioning. Keep services decoupled while adding guarantees.
Governed self‑service templates. Compensations and approvals for compliance‑critical paths.
Standardize patterns across teams; search and debug at fleet scale. Safe rollouts across regions.
Business‑as‑code atop Kafka. Reusable workflow building blocks accelerate new products.
Define workflows in a few lines
Use the LittleHorse SDK to declare steps and Kafka triggers. Keep your current services—HTTP/gRPC tasks are supported.
public void quickstartWf(WorkflowThread wf) {
WfRunVariable name = wf.declareStr("name").required();
WfRunVariable email = wf.declareStr("email").required();
WfRunVariable ssn = wf.declareInt("ssn").masked().required();
wf.execute(VERIFY_IDENTITY_TASK, name, ssn).withRetries(3);
NodeOutput identityVerificationResult = wf.waitForEvent(IDENTITY_VERIFIED_EVENT)
.timeout(60 * 60 * 24 * 2) // 2 days timeout to respect SLAs
.withCorrelationId(email)
.registeredAs(Boolean.class);
wf.doIfElse(
identityVerificationResult,
ifBody -> {
ifBody.execute(NOTIFY_CUSTOMER_TASK, identityVerificationResult, name, email);
},
elseBody -> {
elseBody.execute(NOTIFY_CUSTOMER_TASK, identityVerificationResult, name, email);
});
}
// One annotation to integrate with your existing systems
@LHTaskMethod("verify-identity")
public boolean verifyIdentity(String name, String ssn) {
// Trigger 3rd party API to verify identity
}
@LHTaskMethod("notify-customer")
public void notifyCustomer(Boolean verified, String name, String email) {
if (verified) {
System.out.println("Customer " + name + " with email " + email + " is verified");
} else {
System.out.println("Customer " + name + " with email " + email + " is not verified");
}
}
Ready to ship resilient, event‑driven microservices?
Run the free quickstart or talk to our team about your Confluent architecture.