https://www.youtube.com/watch?v=IhLSwCRyrcw
https://github.com/AxonIQ/axon-quick-start/tree/solution (checkout branch solution)
https://docs.axonframework.org/
https://docs.axonframework.org/part-i-getting-started/quick-start#quick-start
https://blog.novatec-gmbh.de/event-sourcing-spring-boot-axon/
https://blog.novatec-gmbh.de/testing-event-sourcing-applications/
https://www.foundery.co.za/blog/a-pragmatic-design-for-an-axon-system/
https://github.com/nieldw/ContactsAxonDemo
https://github.com/search?l=Kotlin&q=AggregateTestFixture&type=Code
https://groups.google.com/forum/#!forum/axonframework
https://github.com/bassmake/hi-axon
https://github.com/ehnmark/axon-kotlin-om
https://www.michielrook.nl/2017/12/rebuilding-projections-axon-framework/
https://github.com/axon-microservices/user
https://github.com/DarkToast/AxonSpring
Install rabbitmq by using a package manager for your system:
$ sudo apt install rabbitmq-server
Configure rabbitmq - add web admin gui + user to connect:
# add web admin gui plugin
$ sudo rabbitmq-plugins enable rabbitmq-management
# configure the administrator so you can connect to web console
$ sudo rabbitmqctl add_user user user
$ sudo rabbitmqctl set_permissions -p user ".*" ".*" ".*"
$ sudo rabbitmqctl set_permissions -p / user ".*" ".*" ".*"
$ sudo rabbitmqctl set_user_tags user administrator
then you can connect to http://localhost:15672
The usual Spring run works:
$ ./gradlew clean build -x test
$ java -jar build/libs/eventsourcing-0.0.1-SNAPSHOT.jar
...
spring console logging snip-snap
...
event received: TenantCreated(id=602224704, name=some tenant)
event received: TenantSuspended(id=602224704)
event received: TenantActivated(id=602224704)
DONE
Make tests work. Currently they fail withorg.axonframework.commandhandling.NoHandlerForCommandException
. Tests use AggregateTestFixture.- Implement at least one tenant projection
DONE
Implement API controller for tenants- Implement another aggregate root (UserProfile)
- Implement KYC saga:
- a new user starts sign-on process
- user enters MSISDN
- confirmation code is generated
- SMS with confirmation code is sent
- user presents confirmation code
- a new user profile is created
- Implement custom aggregate root repository for another aggregate (no event sourcing)
- Connect everything
- postgres
DONE
ActiveMQ