Search the portfolio
↑ ↓↵ESC
Back to projects
CASE STUDYINTEGRATION & PERSISTENCE

Polyglot Persistence

Four engines. Distinct responsibilities.

Project · Local prototype · console
JavaSQLSQL ServerMongoDBRedisCassandraDockerDocker Compose

Overview

Four persistence engines, distinct responsibilities and one Java console workflow.

SQL Server, MongoDB, Redis and Cassandra support catalog, cart, order and billing workflows. A local integration prototype with no web UI or REST API.

Problem

Assign each operation to an appropriate storage model and bring the workflows together in one application.

My role

I worked on the application and its persistence integration, contributing to Cassandra session records and local-environment configuration.

Architecture

Console menu → business services → engine-specific DAOs. SQL Server stores users, orders and billing; MongoDB the catalog; Redis the cart and undo/redo; Cassandra session records. Docker Compose prepares the local environment.

Original diagram from the project’s technical documentation.

Technical decisions

Storage follows the workflow

SQL Server brings together users, orders and billing; MongoDB holds product documents. Redis manages the cart and undo/redo, while Cassandra records session events.

Engine-specific access

Services connect through DAOs specific to each engine. Integration runs in the local Docker Compose environment, without production-grade distributed transaction coordination.

Challenges and solutions

Integration requires connections and initialization for four engines, and consistent login/logout records. The application does not implement production-grade distributed transaction coordination.

Outcomes

Console workflows using four engines with distinct roles, with fixes to session records and local-environment configuration.

Gallery and resources