vahidhedayati / micronaut-vuejs-cqrs

Fully functional event driven CQRS microsevice application written in micronauts with vuejs frontend. Multiple variations included, master branch contains best practise. websocket-v2 branch an alternative method using websockets to pass backend messages dynamically from dynamic aggregate route to gateway back to user's vuejs screen

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Event driven CQRS application - Written in Micronaut backend, vuejs frontend

Side note - similar / related projects


Running app

Please refer to pre-requirements.

Please allow top 2 terminals to start delay 3rd gateway-command by around 15 seconds until terminals 1 + 2 apps are up.
# Terminal 1
#  node process hangs on which also keeps jvms active - killing node kills all other jvms hanging off
kill -9 $(netstat -pln 2>/dev/null |grep LISTEN|grep node|awk '{print $7}'|awk -F"/" '{print $1}');
./gradlew  userbase-read:run frontend:start  gateway-query:run  userbase-write:run   --parallel
#terminal 2
./gradlew hotel-read:run  hotel-write:run  --parallel
#terminal 3 
./gradlew gateway-command:run

how this app works



The above will launch 1 instance of :

frontend vuejs site running on localhost:3000

gateway-query port localhost:8081

gateway-command port localhost:8082

hotel-read port localhost:{random}

hotel-write port localhost:{random}

user-read port localhost:{random}

user-write port localhost:{random}


Part 1 relates to:

[websocket-1 branch git clone https://github.com/vahidhedayati/micronaut-vuejs-cqrs -b websocket-v1] (https://github.com/vahidhedayati/micronaut-vuejs-cqrs/tree/websocket-v1) and

websocket-2 branch git clone https://github.com/vahidhedayati/micronaut-vuejs-cqrs -b websocket-v2


CQRS further reading, please refer to what CQRS is here.

About

Fully functional event driven CQRS microsevice application written in micronauts with vuejs frontend. Multiple variations included, master branch contains best practise. websocket-v2 branch an alternative method using websockets to pass backend messages dynamically from dynamic aggregate route to gateway back to user's vuejs screen


Languages

Language:Java 61.5%Language:Vue 21.1%Language:JavaScript 8.8%Language:CSS 8.0%Language:Dockerfile 0.4%Language:HTML 0.2%