Coder Social home page Coder Social logo

brodygaudel / cqrs-and-event-sourcing---radar-management-system Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 1.0 998 KB

Distributed system based on micro-services using an event-driven architecture respecting the two patterns Event Sourcing and CQRS. This application allows you to manage violations concerning vehicles following speed violations detected by automatic radars.

Java 100.00%
axon-framework axon-server axonframework cqrs event-driven event-driven-architecture event-sourcing eventdriven eventsourcing java

cqrs-and-event-sourcing---radar-management-system's Introduction

README.md

Distributed System for Vehicle Speed Violation Management

This application is a distributed system based on microservices architecture, employing an event-driven approach following the Event Sourcing and Command Query Responsibility Segregation (CQRS) patterns. Its primary purpose is to manage traffic violations resulting from speeding incidents detected by automatic radar systems.

Architecture Overview

Architecture Overview

Microservices Overview

  1. radar-service

    • Responsible for radar management (command & query operations).
  2. registration-service

    • Manages vehicle information, including registration (command & query operations).
  3. infraction-service

    • Handles the management of traffic violations (command & query operations).

Additional Services

  • discovery-service (Spring Cloud Eureka Server)

    • Enables service discovery within the application.
  • gateway-service (Spring Cloud Gateway)

    • Acts as a gateway for routing and load balancing.

Technology Stack

  • Axon Framework and Axon Server

    • Utilized for implementing Event Sourcing and CQRS.
  • MySQL

    • Database management system for persistent data storage.
  • Maven

    • Build and project management tool.
  • Java 17

    • Programming language for application development.

Getting Started

  1. Clone the repository.

    git clone https://github.com/BrodyGaudel/cqrs-and-event-sourcing---radar-management-system.git
  2. Navigate to the project directory.

    cd your/project/directory
  3. Build the project using Maven.

    mvn clean install
  4. Run the services using your preferred method (e.g., Docker, Java command).

Configuration

  • Update configuration files in each microservice for database connection, Axon Server, and other relevant settings.

Contribution Guidelines

  • Fork the repository, make changes, and submit a pull request.

Illustration

Author

  • Brody Gaudel

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.