StateLens StateLens

Read any event store through your own domain types.

StateLens opens an event sourced store in the browser through the domain assemblies you upload and a manifest that says which of their types are the streams, the events and the snapshots. Memoria's stores, Marten's, Eventuous', Message DB, SQL Stream Store, KurrentDB and Cosmos DB are read the same way, and none of them is ever written to. A store your own code wrote is read the same way too: the manifest says which tables, containers or streams hold the events and the snapshots, and which columns the tool needs from them.

See it before you run it: the demo at demo.statelens.dev is the tool over sample data, open to anyone, with no account to make and nothing to sign in to.

Try the demo Get it Read the documentation

Browse

Events, streams and snapshots, paged and narrowed by stream, by type and by text, with the store's own dates and versions beside them.

Open a row

A snapshot's state, its JSON and the events behind it; a comparison of what is stored against what the events fold to, and which version each was written at.

Declare, never adapt

One manifest names the types, how they are stored and how they are read back. The tool knows no framework by name, so a store of your own is declared the way Marten's is.

Free for one service

One store, read by anyone on your team, forever. The paid editions read more, and the tool is the same image whichever you hold.

Sign in your way

Through your OpenID Connect provider, Entra ID, Keycloak and the rest, or with accounts the tool keeps itself on PostgreSQL, SQL Server or SQLite, made by an Administrator and nobody else. Roles per service either way.

No event sourcing library yet? Start with Memoria

Memoria is event sourcing for .NET, free and open source under the Apache License 2.0: every package, every version, commercial or not, at any scale. Keep state as classic event streams or as dynamic consistency boundaries, in SQL Server, PostgreSQL, SQLite, MySQL or Cosmos DB, or start with its mediator alone and add a store when you need one.

It was written beside StateLens, so a store Memoria writes is one the tool reads from the first event. The demo is the tool over Memoria's own sample services.

Get started with Memoria Memoria on GitHub