Giter Site home page Giter Site logo

axon-bom's Introduction

Axon Framework

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 (DDD), Command-Query Responsibility Separation (CQRS), and Event Sourcing.

Axon Framework provides you with the necessary building blocks to follow these principles. Examples of building blocks are aggregate design handles, aggregate repositories, command buses, saga design handles, event stores, query buses, and more. The framework provides sensible defaults for all of these components out of the box.

The messaging support for commands, events, and queries is at the core of these building blocks. It is the messaging basics that enable an evolutionary approach towards microservices through the location transparency they provide.

Axon will also assist in distributing applications to support scalability or fault tolerance, for example. The most accessible and quick road forward would be to use Axon Server to seamlessly adjust message buses to distributed implementations. Axon Server provides a distributed command bus, event bus, query bus, and an efficient event store implementation for scalable event sourcing. Additionally, the Axon Framework organization has several extensions that can help in this space.

All this helps to create a well-structured application without worrying about the infrastructure. Hence, your focus can shift from non-functional requirements to your business functionality.

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

Getting started

Numerous resources can help you on your journey in using Axon Framework. A good starting point is AxonIQ Developer Portal, which provides links to resources like blogs, videos, and descriptions.

Furthermore, below are several other helpful resources:

  • The quickstart page of the documentation provides a simplified entry point into the framework with the quickstart project.
  • We have our very own academy! The introductory courses are free, followed by more in-depth (paid) courses.
  • When ready, you can quickly and easily start your very own Axon Framework based application at https://start.axoniq.io/. Note that this solution is only feasible if you want to stick to the Spring ecosphere.
  • The reference guide explains all of the components maintained within Axon Framework's products.
  • If the guide doesn't help, our forum provides a place to ask questions you have during development.
  • The hotel demo shows a fleshed-out example of using Axon Framework.
  • The code samples repository contains more in-depth samples you can benefit from.

Receiving help

Are you having trouble using any of our libraries or products? Know that we want 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.
  • When the reference guide does not cover your predicament, we would greatly appreciate it if you could file an issue for it.
  • Our forum provides a space to communicate with the Axon community to help you out. AxonIQ developers will help you out on a best-effort basis. And if you know how to help someone else, we greatly appreciate your contributions!
  • We also monitor Stack Overflow for any question tagged with axon. Similarly to the forum, AxonIQ developers help out on a best-effort basis.

Feature requests and issue reporting

We use GitHub's issue tracking system) for new feature requests, framework enhancements, and bugs. Before filing an issue, please verify that it's not already reported by someone else. Furthermore, make sure you are adding the issue to the correct repository!

When filing bugs:

  • A description of your setup and what's happening helps us figure out what the issue might be.
  • Do not forget to provide the versions of the Axon products you're using, as well as the language and version.
  • If possible, share a stack trace. Please use Markdown semantics by starting and ending the trace with three backticks (```).

When filing a feature or enhancement:

  • Please provide a description of the feature or enhancement at hand. Adding why you think this would be beneficial is also a great help to us.
  • (Pseudo-)Code snippets showing what it might look like will help us understand your suggestion better. Similarly as with bugs, please use Markdown semantics for code snippets, starting and ending with three backticks (```).
  • 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!

axon-bom's People

Contributors

abuijze avatar azzazzel avatar blackdread avatar codedrivenmitch avatar dependabot[bot] avatar gklijs avatar jangalinski avatar lfgcampos avatar smcvb avatar vermorkentech avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

axon-bom's Issues

axon-kotlin-test is missing from BOM

Enhancement Description

Add axon-kotlin-test definition i BOM

Current Behaviour

No dependency defined

Wanted Behaviour

<dependency>
    <groupId>org.axonframework.extensions.kotlin</groupId>
    <artifactId>axon-kotlin-test</artifactId>
    <version>...</version>
</dependency>

Possible Workarounds

Add Project Reactor version

Enhancement Description

Add dependencies for reactor as there are issues when using incorrect version of reactor.

Current Behaviour

User has to specify the version of reactor in their own pom file, potentially leading to issues when upgrading from older Axon version.

Wanted Behaviour

Possible Workarounds

add axon-server-plugin-api

Feature Description

I would like to have the latest version of the server plugin api in this BOM as well

<!-- https://mvnrepository.com/artifact/io.axoniq/axonserver-plugin-api -->
<dependency>
    <groupId>io.axoniq</groupId>
    <artifactId>axonserver-plugin-api</artifactId>
    <version>4.5</version>
</dependency>

Bom versioning question

1st: cool that there is a BOM now

2nd: Question: what is your versioning idea? coupling the extension versions to the axon-framework release versions seems a bit strange to me ... when 4.5 main release is out and we adopt for example extension-kotlin to support new features of 4.5 this will result in a new version of extension-kotlin and thus will require a new bom release ...

Possible Solutions:

  • provide two boms: one just containing the "main" axon-framework components released under 4.5 (or 4.4.7, ...) and one that is released more frequently, referring to the first one and updating extension versions
  • a versioning scheme that contains the main framework version but supports an additional version counter to reflect intermediate changes extensions, which could either be a four digit version (4.4.6.1) or a suffixed version (1.2.3-A4.4.6) where the part after the "-" is the main framework version and the part before the continuing version of the bom artifact.

Did you consider this? What is the plan, what's your opinion?

Support Axon 4.7

Feature Description

Hello, Looks like all dependencies related to this bom are already updated to axon 4.7, when will it be available to be used?

Thanks.

Current Behaviour

Just released til version 4.6.3

Wanted Behaviour

Release support to version 4.7.x

Possible Workarounds

Put the versions directly in dependencies without bom to auto-fill the versions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.