Skip to content

This is the output of the bachelor thesis. An example implementation of design patterns CQRS and materialized view using the synchronization of two database schemas (write and read schema) by the CDC process.

Notifications You must be signed in to change notification settings

palivtom/cqrs-materializedview-combo-pattern

Repository files navigation

Example library

The library is a simple example of a project that uses the command query responsibility segregation ant the materialized view design patterns.

Simplified component flow diagram: component flow diagram

Installation

  1. Make gradle executable
chmod +x ./gradlew
  1. Build services
./gradlew :order-service:bootJar :order-updater-service:bootJar :order-view-service:bootJar :transaction-grouper-service:bootJar 
  1. Start dockerization of the project
docker compose up --build -d
  1. Create debezium connector
curl -i -X POST -H "Content-Type:application/json" http://localhost:8083/connectors/ -d @config/connectors/register-postgres.json
  1. Application is available on http://localhost:8080 (business microservice) and http://localhost:8180 (view microservice)

  2. Swagger OpenAPI specification can be found at ./order-service/src/main/resources/openapi/order-service.yml (business API) and ./order-view-service/src/main/resources/openapi/order-view-service.yml (view API). The Insomnia export can be used as an example ./insomnia_export.json

About

This is the output of the bachelor thesis. An example implementation of design patterns CQRS and materialized view using the synchronization of two database schemas (write and read schema) by the CDC process.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages