https://blog.jayway.com/2013/06/20/dont-publish-domain-events-return-them/
https://lostechies.com/jimmybogard/2014/05/13/a-better-domain-events-pattern/
http://udidahan.com/2009/06/14/domain-events-salvation/
https://en.wikipedia.org/wiki/Immutable_object
https://martinfowler.com/eaaDev/EventSourcing.html
http://www.infoq.com/cn/articles/implementation-road-of-domain-driven-design/
https://en.wikipedia.org/wiki/Event-driven_architecture