- Java - General-purpose, concurrent, strongly typed, class-based object-oriented programming language
- AKKA - Toolkit for building highly concurrent,distributed,resilient,message-driven applications for Java and Scala
- Microservices - Architectural style that structures application as collection of highly maintainable,testable services
- Docker - Open Source platform for building, deploying, and managing containerized applications.
- Domain-Driven Design - Approach to develop software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts
- Reactive Principles:
- Event Storming - Workshop-based method to quickly find out what is happening in the domain of a software program
Install the dependencies:
# Check whether python installed:
$ python --version
# Check whether pip installed:
$ python -m pip --version
# If above all installed:
$ pip install -r requirements.txt
# Try upgrading pip:
$ pip install --upgrade pip
Command:
# This will compile and run all main actors in source file
$ mvn compile exec:exec
Command:
# This will run all tests those are written for each actors in all domains
$ mvn test
# This will run specific test or tests that you specify (its name or path)
$ mvn test -Dtest=TestName#xyz
# where TestName is the test class name and xyz is the test method
# this will run all methods inside class name TestName
$ mvn test -Dtest=TestName
# For integration tests use it.test=... option instead of test=...
$ mvn -pl <module-name> -Dit.test=TestCircle#xyz integration-test
# reactive-account.jar exists in target which contains src, target, maven dependencies, jre system library
# Creating docker image:
$ docker build -f Dockerfile -t reactive-account .
# List images
$ docker images
# Running docker image
$ docker run -p <port_number>:<port_number> reactive-account