Releases: DevrexLabs/OrigoDB
Releases · DevrexLabs/OrigoDB
OrigoDB Core 0.19.0
Changes:
- Truncate log on snapshot option
EngineConfiguration.Create()
removed, just use the constructor- Internal methods in addition to public are now proxied
- Exceptions from proxy are no longer wrapped in
TargetInvocationException
RedisModel
now supports bitset commands- Relational model - a new built in model supporting CRUD operations for your user defined IEntity classes
ExecutionContext
renamed toExecution
Nuget: install-package origodb.core
OrigoDB Core 0.18.0
See the beta release notes
OrigoDB Core 0.18.0-beta
Lot's of news in this release! Grab the binaries below or install the pre-release package from nuget.
New features
New data types and models included in core:
- GeospatialIndex andGeoPoint types
- GraphModel - A property graph
- Key/Value store model
- RedisModel - a partial implementation of the redis protocol
- MessageBroker model - persistent pub/sub and message queing
- Sql Storage module now included in the core, write the journal to a sql database instead of the file system
- New event - EngineClosing
Changes
- Redesigned Isolation API
- No snapshot on create unless initial model instance is passed to Engine.Create()
- Command.Timestamp and Model.Events removed in favor of ExecutionContext.Current - breaking!
- Proxy now supports overloaded methods and generic arguments
- Documentation now included in repo, so each version will have it's own documentation hosted at origodb.com
0.17.1
Redesigned domain events API. See http://dev.origodb.com/docs/domain-events for details.
Some example code
//example domain event
public class CustomerCreated : IEvent
{
public readonly int Id;
public CustomerCreated(int id)
{
Id = id;
}
}
//subscribing to events
var db = new MyModel();
//all events
db.Events.Subscribe(e => MyEventHandler(e));
//all events of a specific (or derived) type
db.Events.On<CustomerCreated>(e => Console.WriteLine(e));
//filtered events
db.Events.Subscribe(e => MyEventHandler(e), e => MyFilter(e));
//publish events
db.Events.Send(new CustomerCreated(42));
//subscribe to events through engine:
var engine = Engine.For<MyModel>();
engine.CommandExecuted += (s,e) => {
foreach(IEvent evt in e.Events)
{
//process event
}
};
//execute command which produces events
engine.Execute(new CreateCustomerCommand(42, "Batman"));