Skip to content

Axon Framework extension for Mongo integration as a Dead Letter, Event, Saga and Tracking Token storage solution.

License

Notifications You must be signed in to change notification settings

AxonFramework/extension-mongo

Repository files navigation

Axon Framework - Mongo Extension

Maven Central Build Status SonarCloud Status

Axon Framework is a framework for building evolutionary, event-driven microservice systems, based on the principles of Domain Driven Design, Command-Query Responsibility Segregation (CQRS) and Event Sourcing.

As such it provides you the necessary building blocks to follow these principles. Building blocks like Aggregate factories and Repositories, Command, Event and Query Buses and an Event Store. The framework provides sensible defaults for all of these components out of the box.

This set up helps you create a well structured application without having to bother with the infrastructure. The main focus can thus become your business functionality.

This repository provides an extension to the Axon Framework: Mongo. It provides functionality to leverage Mongo as a TokenStore, SequncedDeadLetterQueue, SagaStore and an EventStorageEngine* (to be used by an EventStore).

For more information on anything Axon, please visit our website, http://axoniq.io.

*Please note that from Axon Framework 4 we no longer recommend using MongoDB as an event store. There are several problems. There is no sequence generator, which makes tracking tokens big and sometimes unreliable. After many events, the index will become too large to fit in memory. Above all, the performance will be a lot worse compared to Axon Server.

Getting started

The AxonIQ Library contains a section for the guides of all the Axon Framework extensions. The MongoDB extension guide can be found here.

This extension should be regarded as a partial replacement of Axon Server, since it only cover the event storage part.

Receiving help

Are you having trouble using the extension? We'd like to help you out the best we can! There are a couple of things to consider when you're traversing anything Axon:

  • Checking the reference guide should be your first stop, as the majority of possible scenarios you might encounter when using Axon should be covered there.
  • If the Reference Guide does not cover a specific topic you would've expected, we'd appreciate if you could post a new thread/topic on our library fourms describing the problem.
  • There is a forum to support you in the case the reference guide did not sufficiently answer your question. Axon Framework and Server developers will help out on a best effort basis. Know that any support from contributors on posted question is very much appreciated on the forum.
  • Next to the forum we also monitor Stack Overflow for any questions which are tagged with axon.

Feature requests and issue reporting

We use GitHub's issue tracking system for new feature request, extension enhancements and bugs. Prior to filing an issue, please verify that it's not already reported by someone else.

When filing bugs:

  • A description of your setup and what's happening helps us figuring out what the issue might be
  • Do not forget to provide version you're using
  • If possible, share a stack trace, using the Markdown semantic ```

When filing features:

  • A description of the envisioned addition or enhancement should be provided
  • (Pseudo-)Code snippets showing what it might look like help us understand your suggestion better
  • If you have any thoughts on where to plug this into the framework, that would be very helpful too
  • Lastly, we value contributions to the framework highly. So please provide a Pull Request as well!

About

Axon Framework extension for Mongo integration as a Dead Letter, Event, Saga and Tracking Token storage solution.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published