Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andrea-cavallo/cdc-debeziumembedded-sqlserver-mongodb-kafka
Progetto di Simulazione di Cattura da un DB Legacy
https://github.com/andrea-cavallo/cdc-debeziumembedded-sqlserver-mongodb-kafka
apache-kafka-consumer cdc consumer-kafka crud-api debezium debezium-embedded microservices-architecture spring-boot spring-mvc sql-server-database
Last synced: 14 days ago
JSON representation
Progetto di Simulazione di Cattura da un DB Legacy
- Host: GitHub
- URL: https://github.com/andrea-cavallo/cdc-debeziumembedded-sqlserver-mongodb-kafka
- Owner: Andrea-Cavallo
- Created: 2023-07-20T16:17:26.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-07-20T16:31:03.000Z (over 1 year ago)
- Last Synced: 2024-11-05T23:12:03.402Z (2 months ago)
- Topics: apache-kafka-consumer, cdc, consumer-kafka, crud-api, debezium, debezium-embedded, microservices-architecture, spring-boot, spring-mvc, sql-server-database
- Language: Java
- Homepage: https://www.andreacavallo.com/
- Size: 85 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Progetto di Simulazione di Cattura da un DB Legacy
Questo progetto simula la necessità di catturare cambiamenti da un database legacy (in questo caso, SQLServer) utilizzando una REST API creata ad hoc. Il cuore di questa simulazione sfrutta il Change Data Capture (CDC), in particolare tramite l'uso di SpringBoot e Debezium Embedded.
## Panoramica
La nostra architettura è strutturata in modo tale che tutti i cambiamenti sulla tabella dbo.outbox vengano catturati e gestiti. In aggiunta, è stato applicato il pattern outbox per garantire l'atomicità delle operazioni e la consistenza dei dati.## Kafka e Docker Compose
Per simulare l'ambiente distribuito, abbiamo incorporato Kafka e un'interfaccia Kafka UI, entrambi eseguiti attraverso Docker Compose. In questo modo, possiamo simulare facilmente l'invio di messaggi e l'interazione tra i microservizi.
Secondo Microservizio e Kafka Producer## Primo Microservizio [crud-sqlserver-ms]
Il primo microservizio svolge un ruolo fondamentale all'interno del nostro progetto: simula un database legacy, nel nostro caso SQLServer. Questo si rende possibile attraverso l'implementazione di un modello di dati e delle funzionalità che riflettono quelle di un tipico database SQLServer.
In aggiunta alla simulazione del DB, il primo microservizio applica anche il pattern Outbox. Questo modello di design consente di assicurare l'atomicità delle operazioni e la consistenza dei dati nel contesto di un sistema distribuito.## Secondo Microservizio [cdc-debezium-ms]
Dopo aver catturato i cambiamenti, il secondo microservizio si occupa di creare un topic attraverso un Kafka Producer. Questo topic viene poi utilizzato per coinvolgere l'ascolto di un terzo microservizio.
Terzo Microservizio e MongoDB## Terzo Microservizio [consumerapp-ms]
Il terzo microservizio ha il compito di ascoltare il topic creato dal producer. Dopo aver ricevuto i dati, il microservizio esegue alcune logiche (specifiche al caso d'uso) e persiste i dati su MongoDB.## Autore
Andrea Cavallo