It may be hard for an egg to turn into a bird: it would be a jolly sight harder for it to learn to fly while remaining an egg.
-- C.S. Lewis
See the manual
- provide more useful arglists metadata on
map->{name}constructors.
- remove work-in-progress broken files from release
- events don't include their aggregate type any more
- introduce
map->{name}constructors
- upgrade to clojure-1.9.0-alpha16 with clojure.spec.alpha namespaces
- ensure repositories print as short names instead of potentially giant map
- deserialize
:rill.message/stream-idin messages when usingrill.wheel/wrap-stream-properties. - remove debug output from
rill.wheel.wrap-upcasts - added tests for integration with
rill.event-store.mysql
- include
:rill.message/stream-idand:rill.message/numberinokresult.
- added upcasts wrapper. added presentation to docs
- serialize props for storing aggregate ids in durable stores
- small documentation improvements
- use clojure.spec for parsing
defeventanddefcommandmacro arguments - use provided prepost maps in
->event-nameconstructors
- clojure.spec specs for macros and functions
- clojure.spec enabled for tests
- allow access to backing
event-storefrom repository - added triggers. See
rill.wheel.trigger - added
rill.wheel.wrap-new-events-callbackevent store wrapper - small documentation typos fixed
- added
->{event-name}constructor function - added
->{command-name}constructor function - deprecated
{command-name}-commandfunction
- added
:rill.wheel/propertiesmetadata to events and commands - added markdown reporting
- (breaking) Renamed
rill.wheel.aggregatetorill.wheel - (breaking)
defeventnow takes aggregate type as a required argument defeventchecks for collisions of event properties with aggregate identifier- Added more documentation
- Added
reasonfunction to get reason for arejection
Modified command setup, allowing commands to be supplied as messages.
- (breaking) merged
rill.wheel.commandintorill.wheel.aggregatenamespace - (breaking)
rill.wheel.commandtakes aggregate type as additional argument. - (breaking) first argument to commands now must be an aggregate.
- (breaking)
okresult's aggregate now reflects the comitted (updated) aggregate.
- Improve & expand documentation
- Allow inlining of event and command definitions in defaggregate
- Make
:rill.wheel.command/eventsmetadata optional. - (breaking) defcommand does not automatically commit results, use
rill.wheel.command/commit!
- Documentation improvements
- (breaking/fix) preconditions on
defeventgo on the event constructor. - (breaking) split off aggregate retrieval code generated by
defaggregateinto newget-$namefunction.
- (breaking) aggregate ids now include the aggregate type
- body of
defeventis now optional - (breaking)
defeventcreates additional{name}-eventfunction
Some breaking API updates.
- defaggregate builds the aggregate constructor automatically
- aggregate id is a map of identifying properties
- repository protocol does
updateinstead offetch.
- Finished
rill.wheel.wrap-stream-properties.
- Fixed
rill.wheel.testing/sub?checking seqs with lists.
- Added
rill.wheel.checknamespace for checking model consistency. - Enforcing use of
:rill.wheel.command/eventskey on command definitions.
Initial release
Copyright © 2016 Joost Diepenmaat, Zeekat Software Ontwikkeling
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.
