Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
December 30, 2016 15:29
December 30, 2016 14:53
August 10, 2015 15:30
December 30, 2016 14:53
November 8, 2018 20:41
September 8, 2015 07:52
August 10, 2015 15:21

Important notice!

OrigoDB is no longer under active development. Please check out Memstate which is a complete rewrite of OrigoDB featuring major improvements in the areas performance, availability, licensing, cross-platform, docker and cloud support. Memstate targets .NET Standard 2.0 so will run on .NET Framework >= 4.6.1, .NET Core >= 2.0, Xamarin and Mono.

In-memory database for NET/Mono

An Origo database is a command-sourced in-memory object graph.

Write your custom data model, commands and queries using any .NET language, or choose from a number of existing generic models.

OrigoDB is developed and maintained by Devrex Labs. We offer commercial support, consulting, training and enterprise features.

To learn more, visit the project web site and read the online documentation.

Join the chat at

Build status

Example code

//Nuget: Install-Package OrigoDb.Core
//Restore graph by replaying commands stored on disk
//in the current working directory
var engine = Engine.For<MyModel>();

//Log a command to disk and then apply to in-memory graph
engine.Execute(new MyCommand{MyArg = someValue});

//read the in-memory graph using a custom query
var results = engine.Execute(new MyQuery{MyArg = someValue});

// -----------------------------------------
// Example #2 - Implicit operations
// -----------------------------------------
//restore graph and wrap the engine in a proxy
MyModel db = Db.For<MyModel>();

//void methods are translated to commands

//non-void methods are translated to queries
var results = db.MyQuery(someValue);

Key Strengths

  • As transparent as persistence can get
  • Rapid development, 50% less code on the backend
  • High performance, complex transaction processing
  • Suitable for Domain Driven Design
  • Very easy to unit test and debug
  • 100% ACID, fully serialized transactions
  • Powerful queries using LINQ
  • Flexible and extensible data modeling using modern language and full access to the .NET Framework Class library
  • Full audit trail through complete history of commands
  • Mature, used in production all over the world
  • Modular storage backend


Install-package OrigoDB.Core



In-memory event-sourced database engine for NET/Mono







No packages published