Skip to content

This repository contains CQRS application using node/express, servicebus-* + rabbitmq mongo and docker (e2e tests with swarm cluster included)

Notifications You must be signed in to change notification settings

daggerok/node-cqrs

Repository files navigation

node-cqrs Build Status

This repository contains CQRS application using node/express, servicebus-* + rabbitmq mongo and docker (swarm cluster included)

TODO: not yet finished…​

(ui update data) >>
    [produce command] >>
        [handle rabbit event] >>
            [save data into eventstore mongodb (master node)]
...
eventual consistency
...
(ui fetch data) >> | pooling | websockets | backpreassure
    [query view / projection] >>
        [get data from mongodb (replica node)]

done:

  1. implemented docker infrastructure: rabbitmq, mongo

  2. message-frontend app

  3. message-command app

  4. message-store app

send message via REST API to RabbitMQ message broker
http post :3001/api/v1/messages content='some data as messages.create type event'
automation e2e tests using docker swarm / docker stack deploy (required docker / swarm / compose and httpie installed)
yarn -i
bash e2e-tests/docker-swarm.bash
automation e2e tests using docker-compose (required docker compose and httpie installed)
yarn -i
bash e2e-tests/docker-compose.bash
manual e2e testing using docker-compose (required docker compose and httpie installed)
yarn -i
docker-compose -f docker/docker-compose-application-services.yml up -d --build
http :3001
docker-compose -f docker/docker-compose-application-services.yml down -v
development
yarn -i
yarn start
yarn stop

yarn global add npm-check-updates
ncu -u

links:

docker links:

ocker build -t friendlyname .  # Create image using this directory's Dockerfile
docker run -p 4000:80 friendlyname  # Run "friendlyname" mapping port 4000 to 80
docker run -d -p 4000:80 friendlyname         # Same thing, but in detached mode
docker container ls                                # List all running containers
docker container ls -a             # List all containers, even those not running
docker container stop <hash>           # Gracefully stop the specified container
docker container kill <hash>         # Force shutdown of the specified container
docker container rm <hash>        # Remove specified container from this machine
docker container rm $(docker container ls -a -q)         # Remove all containers
docker image ls -a                             # List all images on this machine
docker image rm <image id>            # Remove specified image from this machine
docker image rm $(docker image ls -a -q)   # Remove all images from this machine
docker login             # Log in this CLI session using your Docker credentials
docker tag <image> username/repository:tag  # Tag <image> for upload to registry
docker push username/repository:tag            # Upload tagged image to registry
docker run username/repository:tag                   # Run image from a registry

docker stack ls                                            # List stacks or apps
docker stack deploy -c <composefile> <appname>  # Run the specified Compose file
docker service ls                 # List running services associated with an app
docker service ps <service>                  # List tasks associated with an app
docker inspect <task or container>                   # Inspect task or container
docker container ls -q                                      # List container IDs
docker stack rm <appname>                             # Tear down an application

docker-machine create --driver virtualbox myvm1 # Create a VM (Mac, Win7, Linux)
docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 # Win10
docker-machine env myvm1                # View basic information about your node
docker-machine ssh myvm1 "docker node ls"         # List the nodes in your swarm
docker-machine ssh myvm1 "docker node inspect <node ID>"        # Inspect a node
docker-machine ssh myvm1 "docker swarm join-token -q worker"   # View join token
docker-machine ssh myvm1   # Open an SSH session with the VM; type "exit" to end
docker-machine ssh myvm2 "docker swarm leave"  # Make the worker leave the swarm
docker-machine ssh myvm1 "docker swarm leave -f" # Make master leave, kill swarm
docker-machine start myvm1            # Start a VM that is currently not running
docker-machine stop $(docker-machine ls -q)               # Stop all running VMs
docker-machine rm $(docker-machine ls -q) # Delete all VMs and their disk images
docker-machine scp docker-compose.yml myvm1:~     # Copy file to node's home dir
docker-machine ssh myvm1 "docker stack deploy -c <file> <app>"   # Deploy an app

About

This repository contains CQRS application using node/express, servicebus-* + rabbitmq mongo and docker (e2e tests with swarm cluster included)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published