A library which supports DDD, CQRS and event sourcing