Skip to main content
Open Source · Apache 2.0

Treat your Business Facts with the respect they deserve.

FactStore is an open-source, flexible, and high-performance database for event sourcing at scale. Store, retrieve, and stream your facts with ease.

A Manifesto for Data Integrity

Software systems are built on decisions, but they are sustained by facts. Traditional databases force you to structure your world before you understand it. FactStore comes from a different angle and is designed with event sourcing and flexibility in mind.

Event sourcing should be easy and accessible to everyone, with the least amount of patterns needed! FactStore is an attempt to provide this flexibility and freedom so that you can design your applications in a way that closely reflects how your business operates, without the additional technical overhead.

Core Capabilities

FactStore provides the backbone for your event sourcing infrastructure.

Event Sourcing and Streaming

FactStore supports traditional aggregate or stream-based event sourcing as well as more flexible approaches to enforce consistency, such as dynamic consistency boundaries (DCB). FactStore gives you the flexibility to use both.

Scalable and Performant

Adapt FactStore to the workload you need. Whether you need a FactStore for local development and experimentation, or a production-ready, redundant storage, FactStore's flexible architecture lets you choose.

Open Source

The core of FactStore is fully open source and licensed under Apache 2.0. Deploy FactStore wherever you like, on-premise or in the cloud. There is no vendor lock-in. Enterprise features and support are available for advanced use cases.

Why choose FactStore?

Event sourcing should not be a rigid architectural trap. FactStore provides the tools to build systems that are both mathematically sound and operationally flexible.

  • Open Source Transparency: Audit every line of code.
  • Clear and simple APIs: FactStore is well-documented and tested.
  • Flexible event sourcing: Support for stream-based and dynamic consistency.
  • Atomic Operations: Profit from strong consistency and idempotent operations.
  • CloudEvent support: Use common transport protocols to share your facts.
example.ts
const factStore = new FactStore(config);

// Append a business fact
await factStore.append({
  type: "OrderPlaced",
  stream: "order-123",
  data: {
    customer: "alice",
    total: 49.99
  }
})

// Read the stream
const events = await factStore.read(
  "order-123"
);