Skip to content

Releases: ContextCore/GridDomain

Reimagined GridDomain

05 May 06:45
17ac3f4

Choose a tag to compare

Reimagined GridDomain Pre-release
Pre-release

a new version of GridDomain, much simpler and easier to use

Messages metadata

25 Dec 01:57

Choose a tag to compare

Messages metadata Pre-release
Pre-release

Messages metadata

Messages used for aggregates \ sagas \ custom handlers communication now are enveloped with metadata
containing correlation id, casuation id and procesing history for better debuggin and tracing.
All event produced by command, even produced by sagas raised, can be tracked by command correlation id.
details

Event adapters merge

Event adapters for whole messages and only for nested objects are registered in one place - GridNode.EventAdaptersCatalog before Node start.

Customizable pools for actor routing

When creating a route for messages, it is possible to choose a pool - non, random, consistent hashing

No pool for aggregates and sagas

Sagas and Aggregates persistence hubs no longer use a consistenet hashing pool due to a lot of side-effects.
Now only one hub per aggregate \ saga type is existed and passes messages to its children.

Snapshots customiazation

22 Nov 18:31

Choose a tag to compare

Pre-release

Snapshots payload can be customized by aggregate producing custom implementation of IMemento
and IConstructAggregates creating aggregates from IMemento instance.

Added policy to delete snapshots

Updated documentation

Snapshots & simplified scheduler

14 Nov 20:42

Choose a tag to compare

Pre-release

GridDomain release 1.9.0 bring two main possibilities:

Snapshots

Aggregates, instance and state sagas can be snapshotted to increase performance.
Functionaliry is disabled by default, you can enable it with additional parameters for container configuration.
Check you aggregates\sagas are serializable before enabling snapshotting.
Read details in wiki

Simplified scheduler

Scheduler is no more using special sagas subscribed for all messages.
Now it uses command waiting, reducing memory\CPU consumption and DB space.
#24

Additions:

Configurable timeout for persistence journal

Persistence journal supports new parameter - timeout, because connection timeout is not applicable in some cases. New property was added to IDbConfiguration.

Compatibility with legacy wire serializers

Cumulative update to support already existing domain events serialized with Wire 0.0.6 - 0.8.1 with different options.

Command execution with async/await

Command execution perfomed by async/await all the way to better ASP.Net support

Release 1.8.1 messages waiter

28 Oct 14:48

Choose a tag to compare

Pre-release

Added better way to wait for some messages from GridDomain internal bus.
Now we can filter messages by local predicates and easily access received messages.

Old functionality based on ExpectedMessage and CommandPlan is deprecated.

More details in wiki

Download this version
Nuget feed

Release 1.8.0

27 Oct 18:55

Choose a tag to compare

Release 1.8.0 Pre-release
Pre-release

Breaking change: new serializer

Serializer and storage format for domain events and snapshot was changed from Wire 0.0.6 to Json.
All existing persisted events will be automatically converted to new format.
As latest wire 0.8.1 used in Akka is not backward-compatible with Wire 0.0.6 used in GridDomain, Wire 0.0.6
is stored as binary library in code and used to deserialize events if Json fails.

Upgrade to latest Akka 1.1.2

It includes Akka.Persistence.Sql.Common 1.1.2 and new Journal table schema. Remember to manually apply migration script

Human-readable persisted events view

At last we can view domain event by own eye. Create HumanJournal view as
create View HumanJournal AS

 SELECT [PersistenceId]
             ,[SequenceNr]
             ,dbo.NetFxUtcTicksToDateTime ([Timestamp]) Time
             ,[IsDeleted]
             ,[Manifest]
         ,CONVERT(NVARCHAR(max), [Payload], 0) Payload
             ,[Tags]
 FROM [dbo].[Journal]

It will show you raw json strings for persisted domain events and snapshots

New domain events adapter for nested objects

Now we can update domain events by parts, e.g. converting only a nested object, shared between many domain events without need to create each event new version. More details at wiki

Release 1.7.2

27 Oct 16:29

Choose a tag to compare

Release 1.7.2 Pre-release
Pre-release

New functionality:
saga faults on errors

If saga raises an exception during transition, it will be logged will Error level and publish IFault message, where T is type of message cased bad transition. All commands issued or events emitted before exception will be processed in regular manner.

https://github.com/solomoto-dev/GridDomain/wiki/Sagas#errors-handling

Improvement for scheduler:
Job is not deleted if scheduling saga creation falls.

Monitoring & huge packages update

05 Aug 19:48

Choose a tag to compare

Pre-release

Upgraded almost all nuget dependencies, added monitoring by AppInsights and perfromance counters.
Updated NUnit to version 3.x

Domain event adapters

27 Jul 21:05

Choose a tag to compare

Domain event adapters Pre-release
Pre-release
  • Added event adapter functionality, details
  • Removed DomainEvent.Version property

Closed
#9

Nuget packages can be found here

Instance sagas state persistence

24 Jul 18:29

Choose a tag to compare

Pre-release
  • Converted ISagaState interface to ISagaState, now state is stored as a string
  • fixed bug with InstanceSagas did not persist in DB due to interface member in state (State and Event from Automatonymous)
  • unified test domain events and commands for instance and state sagas
  • added IAggregate debug extenstions to GridDomain.Test.Framework

Cumulative fix for
#25
#21
#19

Nuget packages can be found here