Skip to main content

Saddle Command Center

Harness Your Events

LittleHorse integrates with your event streaming platform to unify events and process orchestration.

SigningWorkflow.java
public void signDocument(WorkflowThread wf) {
// Step 1: Send the document
wf.execute("send-docusign", docId);

// Step 2: Wait for the signature event
wf.waitForEvent("document-signed");

// Step 3: Continue processing
wf.execute("update-listing-status", "SOLD");

// Timeout: cancel if not signed in 7 days
wf.handleException(handler -> {
handler.execute("cancel-offer", docId);
});
}

Handle Asynchronous Callbacks With ExternalEvents

The waitForEvent() primitive lets your workflow pause until a callback, webhook, or external event arrives — then resume processing automatically. No state tables, no correlation logic, no polling.

Combine it with declarative timeouts and exception handlers to build robust async flows that would otherwise require hundreds of lines of infrastructure code.

Observe Events Through End-to-End Flows

The LittleHorse dashboard gives you a visual representation of every workflow execution. See which tasks completed, which are waiting for events, what data flowed between steps, and where failures occurred.

No more propagating correlation IDs or deploying separate tracing infrastructure. Every step is journaled, searchable, and auditable from a single pane of glass.

LittleHorse dashboard showing an event-driven workflow

Three problems LittleHorse solves for event-driven systems

Each of these challenges is painful to solve from scratch — and comes out of the box with LittleHorse.

Multi-Step Processes

How do I make sure an event reliably makes it across multiple microservices in a row?

Without LittleHorse

  • Transactional Outbox Pattern
  • Hand-rolled retries & dead-letter queues
  • Custom SAGA implementations for rollbacks

With LittleHorse

  • Define the process in a simple WfSpec
  • Use a Kafka Sink Connector to trigger it
  • Retries & durability handled by the system

Asynchronous Callbacks

How do I take an action, wait for a response from an external system, and then continue?

Without LittleHorse

  • Persist the state of all ongoing processes
  • Correlate events to the right process instance
  • Handle timeouts and event race conditions

With LittleHorse

  • Use ExternalEvent to pause and resume workflows
  • Kafka Connector routes callbacks automatically
  • Declarative timeouts and failure handlers in code

End-to-End Observability

How do I watch an event progress from end-to-end across multiple topics and microservices?

Without LittleHorse

  • Propagate correlation IDs across every service
  • Deploy external tracing systems (Zipkin, Jaeger)
  • Hard to find which step failed and why

With LittleHorse

  • E2E observability comes out of the box
  • See stacktraces, inputs, and outputs of each task
  • Processes are represented visually on the dashboard

Get Started. It's Easy and Free.

Build well-governed, reliable event-driven systems with LittleHorse.