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-id
in 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-id
and:rill.message/number
inok
result.
- added upcasts wrapper. added presentation to docs
- serialize props for storing aggregate ids in durable stores
- small documentation improvements
- use clojure.spec for parsing
defevent
anddefcommand
macro arguments - use provided prepost maps in
->event-name
constructors
- clojure.spec specs for macros and functions
- clojure.spec enabled for tests
- allow access to backing
event-store
from repository - added triggers. See
rill.wheel.trigger
- added
rill.wheel.wrap-new-events-callback
event store wrapper - small documentation typos fixed
- added
->{event-name}
constructor function - added
->{command-name}
constructor function - deprecated
{command-name}-command
function
- added
:rill.wheel/properties
metadata to events and commands - added markdown reporting
- (breaking) Renamed
rill.wheel.aggregate
torill.wheel
- (breaking)
defevent
now takes aggregate type as a required argument defevent
checks for collisions of event properties with aggregate identifier- Added more documentation
- Added
reason
function to get reason for arejection
Modified command setup, allowing commands to be supplied as messages.
- (breaking) merged
rill.wheel.command
intorill.wheel.aggregate
namespace - (breaking)
rill.wheel.command
takes aggregate type as additional argument. - (breaking) first argument to commands now must be an aggregate.
- (breaking)
ok
result's aggregate now reflects the comitted (updated) aggregate.
- Improve & expand documentation
- Allow inlining of event and command definitions in defaggregate
- Make
:rill.wheel.command/events
metadata optional. - (breaking) defcommand does not automatically commit results, use
rill.wheel.command/commit!
- Documentation improvements
- (breaking/fix) preconditions on
defevent
go on the event constructor. - (breaking) split off aggregate retrieval code generated by
defaggregate
into newget-$name
function.
- (breaking) aggregate ids now include the aggregate type
- body of
defevent
is now optional - (breaking)
defevent
creates additional{name}-event
function
Some breaking API updates.
- defaggregate builds the aggregate constructor automatically
- aggregate id is a map of identifying properties
- repository protocol does
update
instead offetch
.
- Finished
rill.wheel.wrap-stream-properties
.
- Fixed
rill.wheel.testing/sub?
checking seqs with lists.
- Added
rill.wheel.check
namespace for checking model consistency. - Enforcing use of
:rill.wheel.command/events
key 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.