Bi-Temporal Event Sourcing

The API Platform
for the AI Era

Where every business action is captured with full context, making AI agents auditable and AI-generated code reliable.

Pure functions. Bi-temporal indexing. Complete audit trails. Your cloud, your data, open standards.

Event Sourcing for
the Agentic Era

A bi-temporal event sourcing platform where every business action is captured as an immutable event, indexed for query across multiple dimensions, and materialized into consistent state views via pure-function WebAssembly components.

AI-Ready by Design

Decision traces, not snapshots

AI agents need the full business narrative, not just current state. EvidentSource captures every action with complete context — what happened, when, why, under what policy. Full context before acting, complete auditability after.

Pure Functions, Not Complexity

The pit of success architecture

Your entire programming model is two pure functions: decide() and evolve(). No distributed transactions, no eventual consistency puzzles. Junior developers, offshore teams, and AI coding agents all produce correct code — the architecture makes it hard to do the wrong thing.

Your Cloud, Your Control

Open standards, no lock-in

Deploy to your AWS account via AWS Marketplace. Your data never leaves your infrastructure — we're out of scope for your audits. Built on CloudEvents (CNCF) and WASM Component Model standards. Your data, your Kafka, your DynamoDB.

Your entire programming model

Two pure functions. That's it.

todo.ts
// decide(): Handle command, query state, return events
export const decide = (db, command) => {
  const todo = db.viewState("single-todo", { todoId: command.todoId });

  if (!todo) throw StateChangeError.notFound("Todo not found");

  const eventType = todo.completed ? "TodoUncompleted" : "TodoCompleted";

  return {
    events: [{ type: eventType, subject: command.todoId }],
    conditions: [unchangedSince(command.todoId, todo.revision)]
  };
};

// evolve(): Apply events to state
export const evolve = (state, event) => {
  switch (event.type) {
    case "TodoCreated":
      return { ...state, todos: [...state.todos, event.data] };
    case "TodoCompleted":
      return updateTodo(state, event.todoId, { completed: true });
    case "TodoDeleted":
      return { ...state, todos: state.todos.filter(t => t.id !== event.todoId) };
  }
};

What Makes Us
Different

Not just another event store. Architectural choices that create defensible advantages no competitor can easily replicate.

Bi-Temporal Indexing

"What did we know, and when did we know it?" Query both transaction time and effective time natively.

Three-Dimensional Indexing

Events indexed by stream, subject, and event type — each dimension queryable bi-temporally.

1000+ TPS, No GC Pauses

Rust core + WASM components = sub-100ms write latency, 10-20ms reads, predictable performance.

OpenTelemetry Native

Distributed tracing from day one. Jaeger-compatible. Know what's happening before users complain.

APIs IN

REST gRPC SDK

PURE FUNCTIONS (WASM)

decide() evolve()

STORAGE

DynamoDB

KAFKA OUT

All Events

Built for Systems Where
Decisions Matter

Whether you're building AI-first products, modernizing core banking, or escaping legacy systems — EvidentSource is the platform.

Agentic Systems

AI agents are becoming business actors — booking flights, processing claims, executing trades. They need decision traces before acting and complete auditability after.

  • Full context before acting
  • Complete audit trail after
  • Explainable AI decisions

Core Banking

Event sourcing is how modern banking should work. Working examples include high-yield savings accounts with compound interest, installment loans, and double-entry general ledgers.

  • Complete audit trails
  • Bi-temporal queries
  • SOX/FINRA compliant

Legacy Modernization

LLMs have unlocked cost-effective migration from mainframes and legacy systems. Pure functions are ideal LLM targets. 10x-100x cheaper than traditional approaches.

  • LLM-assisted migration
  • Pure function targets
  • Business logic preserved
1000+

TPS per database

<100ms

Write latency

0

GC pauses

Ready to Get Started?

Deploy to your AWS account via AWS Marketplace. Your cloud, your data, open standards throughout.

Quick Start

Deploy locally with Docker in seconds

docker run -p 8080:8080 evidentsource/evidentsource-dev:latest

Enterprise Support

SLA-backed support and custom deployment

Get Started