Treffer: Asynchronous event-reactive system in a microservices-based architecture

Title:
Asynchronous event-reactive system in a microservices-based architecture
Contributors:
Vidal Manzano, José, Moreno Gómez, Víctor, Universitat Politècnica de Catalunya. Departament de Teoria del Senyal i Comunicacions
Source:
UPCommons. Portal del coneixement obert de la UPC
Universitat Politècnica de Catalunya (UPC)
Publisher Information:
Universitat Politècnica de Catalunya, 2022.
Publication Year:
2022
Document Type:
Dissertation Master thesis
File Description:
application/pdf
Language:
English
Rights:
CC BY NC ND
Accession Number:
edsair.dedup.wf.002..ea3ccda5fde6ffd985cbc3b58579bea9
Database:
OpenAIRE

Weitere Informationen

Este trabajo es una recreación de lo desarrollado en el contexto de una aplicación móvil fintech llamada Goin, propiedad de la empresa Prakma Innovation. El proyecto consiste en la implementación y el despliegue de un sistema reactivo a eventos en el contexto de una arquitectura de software asíncrona. Los eventos que lleguen desde cualquier otra parte del sistema serán eventualmente consumidos para luego desencadenar una acción específica. Estas acciones pueden ser muy diversas y están relacionadas con el seguimiento de datos, el cumplimiento de la normativa o la gestión de las relaciones con los clientes. La problemática que se resuelve es que en muchas empresas, algunas necesidades simples, pero recurrentes, implican continuos cambios sobre el código y su posterior despliegue, implicando grandes costes económicos y de tiempo. Para evitar esto, la configuración de las acciones desencadenadas por eventos se realizará a través de un cuadro de mando (front-end), de forma que pueda aplicarse sin necesidad de conocimientos de programación ni de modificar el código. Los actores principales del escenario son el servidor de recepción de eventos (Event Handling Agency) y un dashboard Strapi. Ambas entidades desplegadas en Heroku como microservicios; se han combinado otras tecnologías: NodeJS como entorno principal para el desarrollo del servidor; MongoDB como DBMS del servidor; RabbitMQ para la mensajería y las colas; Y por último, Expo y SendGrid para la entrega de las comunicaciones. La lógica de negocio que gobierna el sistema se ha escrito principalmente en TypeScript.
El projecte consisteix en la implementació i el desplegament d'un sistema reactiu als esdeveniments en el context d'una arquitectura de programari asíncrona. Els esdeveniments que arribin des de qualsevol altra part del sistema es consumiran finalment per desencadenar una acció específica. Aquestes accions poden ser molt diverses i estan relacionades amb el seguiment de dades, el compliment de normativa o la gestió de la relació amb el client. La problemàtica que resol és que en moltes empreses, unes necessitats senzilles però recurrents, impliquen canvis continus en el codi i el seu posterior desplegament, que impliquen grans costos econòmics i de temps. Per evitar-ho, la configuració de les accions desencadenades pels esdeveniments es realitzarà a través d'un tauler (front-end), de manera que es pugui aplicar sense necessitat d'habilitats de programació o modificació de codi. Els principals actors de l'escenari són el servidor receptor d'esdeveniments (Event Handling Agency) i un tauler de control de Strapi. Ambdues entitats desplegades a Heroku com a microserveis; S'han combinat altres tecnologies: NodeJS com a entorn principal per al desenvolupament del servidor; MongoDB com a SGBD de servidor; RabbitMQ per a missatgeria i cues; I finalment, Expo i SendGrid per a l?enviament de comunicacions. La lògica de negoci que governa el sistema s'ha escrit principalment en TypeScript.
The project consists in the implementation and the deployment of a system that is reactive to events in the context of an asynchronous software architecture. The events that arrive from any other part of the system will be eventually consumed to then trigger a specific action. These actions can be very diverse and are related to Data Tracking, Compliance or Customer Relationship Management. The problematic that resolves is that in many companies, some simple but recurrent needs, imply continuous changes on the code and its subsequent deploy, involving large economic and time costs. To prevent this, the configuration of the event-triggered actions will be performed through a dashboard (front-end), so it can be applied without needing programming skills or modifying code. The main actors of the scenario are the server receiving events (Event Handling Agency) and a Strapi dashboard. Both entities deployed in Heroku as microservices; Other technologies have been combined: NodeJS as the primary environment for server development; MongoDB as the server DBMS; RabbitMQ for messaging and queuing; And finally, Expo and SendGrid for the communications delivery. The business logic that governs the system has been written primarily in TypeScript.