Skip to content

the spike of an event sourced implementation of snake backend

Notifications You must be signed in to change notification settings

casavo/SpikeSnakeAxon

Repository files navigation

Spike Snake axon

This repo is used to familiarize with the Axon Framework

How it is structured

  • single springboot application
  • the write package contains the command APIs and the event sourcing core.
  • the read package contains the read APIs and use a different read-model

Both package could be moved in a different and separated microservices.

How to run it

  • start the axon server with docker-compose up
  • execute the string application with ./gradlew bootRun
  • trigger the related endpoint
  • explore the result accessing the axon server UI

Considerations:

  • Complexity is high. Maybe with SpringBoot we better focus on real problems? (maybe not, we just have more magic and things running)
  • CQRS means lots of infrastructure (command but, event bus, event store ...)
  • attend an official Axon course.
  • CQRS and event sourcing look very interesting.
  • The way how AXON handles the event sourcing related stuff is very intuitive and maintainable.
  • Currently, we are not ready to adopt it in production but we think that the things that we have learnt in this Spike will be useful for the tribe's ecosystem. We should try to keep the already existing svcs as small as possible in order to switch to it when our knowledge about the framework will be enough.

Further investigation

  • Try to use it with Quarkus (we had some problems with DI - parameterResolverError)
  • Try to use it without axon server and implement a db based event/token store. A draft branch can be found here
  • Welcome production things (monitoring, scaling, deployment, disaster recovery, etc..)
  • Do we need axon enterprise? (we are in containers, not VM)

Useful resources

About

the spike of an event sourced implementation of snake backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages