joht / showcase-quarkus-eventsourcing Goto Github PK
View Code? Open in Web Editor NEWShows an example on how to use AxonFramework in conjunction with microprofile on quarkus
Shows an example on how to use AxonFramework in conjunction with microprofile on quarkus
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
io.quarkus:quarkus-maven-plugin
, io.quarkus:quarkus-universe-bom
)showcase-quarkus-eventsourcing/src/main/docker/Dockerfile.jvm
showcase-quarkus-eventsourcing/src/main/docker/Dockerfile.native
.github/workflows/codeql-analysis.yml
actions/checkout v4
github/codeql-action v3
actions/setup-java v4
github/codeql-action v3
.github/workflows/maven.yml
actions/checkout v4
actions/setup-java v4
.github/workflows/native-image.yml
actions/checkout v4
actions/cache v4
DeLaGuardo/setup-graalvm 5.0
.github/workflows/postgresql.yml
actions/checkout v4
maven 3.8.7-openjdk-18
showcase-quarkus-eventsourcing/pom.xml
io.quarkus:quarkus-universe-bom 3.9.5
org.axonframework:axon-configuration 4.9.3
org.axonframework:axon-modelling 4.9.3
org.axonframework:axon-messaging 4.9.3
com.io7m.xom:xom 1.2.10
org.dom4j:dom4j 2.1.4
io.projectreactor:reactor-core 3.6.5
jakarta.security.jacc:jakarta.security.jacc-api 1.6.1
com.tngtech.archunit:archunit-junit5 1.3.0
nl.jqno.equalsverifier:equalsverifier 3.16.1
org.axonframework:axon-test 4.9.3
org.hamcrest:hamcrest 2.2
com.github.klieber:phantomjs-maven-plugin 0.7
com.github.searls:jasmine-maven-plugin 2.2
com.github.timurstrekalov:saga-maven-plugin 1.5.5
net.alchim31.maven:yuicompressor-maven-plugin 1.5.1
org.apache.maven.plugins:maven-site-plugin 3.12.1
org.apache.maven.plugins:maven-project-info-reports-plugin 3.5.0
se.bjurr.gitchangelog:git-changelog-maven-plugin 2.1.0
org.apache.maven.plugins:maven-compiler-plugin 3.13.0
io.quarkus:quarkus-maven-plugin 3.9.5
org.apache.maven.plugins:maven-surefire-plugin 3.2.5
org.apache.maven.plugins:maven-failsafe-plugin 3.2.5
org.apache.maven.plugins:maven-release-plugin 3.0.1
org.jacoco:jacoco-maven-plugin 0.8.12
org.apache.maven.plugins:maven-failsafe-plugin 3.2.5
org.apache.maven.plugins:maven-failsafe-plugin 3.2.5
org.apache.maven.plugins:maven-failsafe-plugin 3.2.5
.github/workflows/native-image.yml
graalvm/graalvm-ce-builds 22.3.3
These warnings occur e.g. during integration tests and should be resolved:
2022-02-03 07:39:41,249 WARN [io.qua.config] (main) Unrecognized configuration key "quarkus.hibernate-orm."query.model"dialect" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
2022-02-03 07:39:41,252 WARN [io.qua.config] (main) Unrecognized configuration key "quarkus.datasource.messaging.max-size" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
2022-02-03 07:39:41,252 WARN [io.qua.config] (main) Unrecognized configuration key "quarkus.datasource.messaging.transactions" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
2022-02-03 07:39:41,252 WARN [io.qua.config] (main) Unrecognized configuration key "quarkus.datasource.messaging.min-size" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
2022-02-03 07:39:41,253 WARN [io.qua.config] (main) Unrecognized configuration key "quarkus.datasource.transactions" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
2022-02-03 07:39:41,253 WARN [io.qua.config] (main) Unrecognized configuration key "quarkus.datasource.max-size" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
2022-02-03 07:39:41,253 WARN [io.qua.config] (main) Unrecognized configuration key "quarkus.datasource.min-size" was provided; it will be ignored; verify that the dependency extension for this configuration is set or that you did not make a typo
I'm considering exploring the reactive mode. I've also come across a concern regarding Axon, suggesting that it might take a considerable amount of time before it fully supports Quarkus. Would you happen to have any insights or advice on this matter? I'd greatly appreciate your input.
Hi Johannes
First, let me thank you for the work you put into this project.
Getting started (with Quarkus + Axon) was quite easy with the help of it!
Currently I am trying to get Sagas to work but fail to do so on various edges.
CdiResourceInjector
uses the Quarkus BeanManager
which does not implement the required methods (createAnnotatedType
, getInjectionTargetFactory
, etc.)SagaLifecycle#associateWith()
throws an IllegalStateException
in Scope#getCurrentScope
since none is activeDid you by any chance look into getting Sagas to work before?
UI doesn't work inside IE and doesn't fully work with Edge browser.
Cross origin resource sharing (CORS) should be configured to support further local ports to test a client running on an local "live server".
Even if quarkus supports CORS directly,
it would be great not to depend on quarkus directly but to implement this using standard microprofile.
Update quarkus to 1.3.0.Final and axon to 4.2.2.
Native image should work with GraalVM 20.0.0
An integrated user interface makes it easier to
Client retrieves "{}โ from event.data (EventSource) when native image is used.
This does not happen when substrate runner jar is used.
@JohT Thanks for the repo :) I am using it for inspiration for my own exploration into the Axon framework here.
A question: in the SQL schema there are the lines:
CREATE TABLE "axon_on_microprofile_tryout"."eventsourcing_sequence" (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT NUMERIC(38), PRIMARY KEY (SEQ_NAME));
INSERT INTO "axon_on_microprofile_tryout"."eventsourcing_sequence"(SEQ_NAME, SEQ_COUNT) values ('ASSOCIATIONVALUEENTRY_ID', 0);
INSERT INTO "axon_on_microprofile_tryout"."eventsourcing_sequence"(SEQ_NAME, SEQ_COUNT) values ('DOMAINEVENTENTRY_GLOBAL_INDEX', 0);
I'm not sure I understand what exactly this is used for? Could you please explain?
Problem
NicknameEventStreamResource
leads to an
java.lang.ArithmeticException: long overflow at java.lang.Math.multiplyExact(Math.java:892) at java.time.Instant.toEpochMilli(Instant.java:1232)
Details
FetchDistinctNicknamesQuery
uses Instant.MIN
internally to express a query of all past nickname changes. This is then converted to the sequence number using "toEpochMilli". Since Instant.MIN.toEpochMilli()
leads to an java.lang.ArithmeticException,
another way needs to be found to express a query from time=zero on.
Proposed Solution
Using Instant.ofEpochMilli(0)
to express a query of all past nickname changes might solve this problem.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.