Ανάπτυξη εφαρμογής που ενσωματώνει τεχνολογία blockchain με χρήση reactive microservices
Application development incorporating blockchain technology using reactive microservices

View/ Open
Keywords
Microservices ; Blockchain ; Reactive programming ; Java ; Spring boot ; Webflux ; Project reactorAbstract
This master’s thesis was developed in the scope of the MSc Program "Advanced Informatics and Computing Systems - Software Development and Artificial Intelligence" of the University of Piraeus and aims to implement a web application development, incorporating Blockchain technology, in microservices architecture using reactive programming.
The reactive programming technique refers to the non-blocking communication between the components of the application, resulting in a much better utilization of the hardware resources of the systems hosting the microservices. The Java framework used to create the microservices is Spring Boot 2.0, as it has built-in support for developing applications with reactive programming, introducing a new web framework, the Spring WebFlux.
The application is about ensuring the authenticity of documents of an educational institution, leveraging blockchain technology. The design and implementation of the application is based on best practices and microservices design patterns, such as the use of asynchronous messaging via the RabbitMQ message broker, load balancing, service discovery, api gateway, distributed tracing, and token relay.
One of the topics that has been given special emphasis, as it consists of a challenge in microservices, is security and user authorization regarding access, both to the resource servers through the interfaces (APIs), and to the frontend application sites, using the OAuth2.0 and OpenID Connect standards.
For the development of the application, Docker technology was used. Microservices are put into docker images and then uploaded to the DockerHub repository. By creating a suitable docker-compose.yml file, the application is deployed in minutes.