This project outlines the design and implementation of a robust event-driven architec- ture employing Apache Kafka to facilitate seamless communication among microservices within Scripbox, a comprehensive portfolio management platform. Transitioning from a monolithic structure to microservices architecture and growing user needs necessitated the establishment of an efficient communication framework to ensure reliable data integration across services. The core focus of the project was to leverage Kafka’s high throughput, low latency and persistent message storage capabilities to enable real-time interactions, manage customer data changes and facilitate third-party integrations. Key components of the solution included the integration of the Confluent Schema Reg- istry for schema management and the use of Apache Avro for effective data serialization, ensuring both compatibility and consistency in message formats. The Outbox pattern was adopted to maintain transactional integrity between database operations and mes- sage publishing, while Debezium was employed for change data capture, enabling near real-time updates from databases to Kafka topics. This architecture had not only enhanced the reliability and scalability of the commu- nication system within Scripbox but also allowed for flexible integration with external APIs and services, thereby supporting the evolving needs of a distributed environment. Through comprehensive design, rigorous testing and monitoring setups, the project had successfully established a high-performing communication mechanism that significantly improved the overall user experience and operational efficiency of the platform.
Questo progetto delinea la progettazione e l'implementazione di una solida architettura basata su eventi che impiega Apache Kafka per facilitare una comunicazione fluida tra microservizi all'interno di Scripbox, una piattaforma completa di gestione del portafoglio. La transizione da una struttura monolitica a un'architettura di microservizi e le crescenti esigenze degli utenti hanno reso necessario l'istituzione di un framework di comunicazione efficiente per garantire un'integrazione affidabile dei dati tra i servizi. L'obiettivo principale del progetto era sfruttare l'elevata produttività, la bassa latenza e le capacità di archiviazione dei messaggi persistenti di Kafka per consentire interazioni in tempo reale, gestire le modifiche dei dati dei clienti e facilitare le integrazioni di terze parti. I componenti chiave della soluzione includevano l'integrazione di Confluent Schema Registry per la gestione degli schemi e l'uso di Apache Avro per un'efficace serializzazione dei dati, garantendo sia la compatibilità che la coerenza nei formati dei messaggi. Il modello Outbox è stato adottato per mantenere l'integrità transazionale tra le operazioni del database e la pubblicazione dei messaggi, mentre Debezium è stato impiegato per l'acquisizione dei dati delle modifiche, consentendo aggiornamenti quasi in tempo reale dai database agli argomenti Kafka. Questa architettura non solo ha migliorato l'affidabilità e la scalabilità del sistema di comunicazione all'interno di Scripbox, ma ha anche consentito un'integrazione flessibile con API e servizi esterni, supportando così le esigenze in evoluzione di un ambiente distribuito. Attraverso una progettazione completa, test rigorosi e configurazioni di monitoraggio, il progetto ha stabilito con successo un meccanismo di comunicazione ad alte prestazioni che ha migliorato significativamente l'esperienza utente complessiva e l'efficienza operativa della piattaforma.
Data integration in microservices architecture using Kafka
Sadineni, Sai Ram
2023/2024
Abstract
This project outlines the design and implementation of a robust event-driven architec- ture employing Apache Kafka to facilitate seamless communication among microservices within Scripbox, a comprehensive portfolio management platform. Transitioning from a monolithic structure to microservices architecture and growing user needs necessitated the establishment of an efficient communication framework to ensure reliable data integration across services. The core focus of the project was to leverage Kafka’s high throughput, low latency and persistent message storage capabilities to enable real-time interactions, manage customer data changes and facilitate third-party integrations. Key components of the solution included the integration of the Confluent Schema Reg- istry for schema management and the use of Apache Avro for effective data serialization, ensuring both compatibility and consistency in message formats. The Outbox pattern was adopted to maintain transactional integrity between database operations and mes- sage publishing, while Debezium was employed for change data capture, enabling near real-time updates from databases to Kafka topics. This architecture had not only enhanced the reliability and scalability of the commu- nication system within Scripbox but also allowed for flexible integration with external APIs and services, thereby supporting the evolving needs of a distributed environment. Through comprehensive design, rigorous testing and monitoring setups, the project had successfully established a high-performing communication mechanism that significantly improved the overall user experience and operational efficiency of the platform.File | Dimensione | Formato | |
---|---|---|---|
project_v9.pdf
accessibile in internet solo dagli utenti autorizzati
Descrizione: Project Report
Dimensione
1.9 MB
Formato
Adobe PDF
|
1.9 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/235113