Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

171 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reactive Microservices Engineering and Design

Reactive Account

IBM

Libraries And Technologies

  • 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.

Design Techniques and Principles

Reactive Principles

  • Event Storming - Workshop-based method to quickly find out what is happening in the domain of a software program

Event Storming

Installation of neccessary packages

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

Running the source file

Command:

# This will compile and run all main actors in source file
$ mvn compile exec:exec

Testing the source file

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

Deployment

# 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

Project Visualization, Implementation, Architecture and Design details

Keys

Main Domains

Reactive Account Architecture and Design: Main Outlook

Reactive Account

All domains inside Reactive Account (separetely)

Account Domain

Payment Domain

Billing Domain

Product Definition/Development Parameters (for Student and Normal packages)

Product Definition/Development Parameters

General View of Domain Event Connections as Actors during technical implementation

Actors Description

References

About

Building and Designing Reactive Systems called Reactive Account using Domain-Driven Design technique and Principles of Reactive Architecture along with Reactive Programming

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages