DEVELOPMENT OF SPRING FRAMEWORK EXTENSION TO SUPPORT EVENTDRIVEN MICROSERVICE ARCHITECTURE

Software development using the monolithic method is not ideal for developing large scale software because of the complexity of the resulting software. One of the solutions is to implement Microservice Architecture to decompose the software into several microservices which can be maintained indepe...

Full description

Saved in:
Bibliographic Details
Main Author: Suhendi
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/50552
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:Software development using the monolithic method is not ideal for developing large scale software because of the complexity of the resulting software. One of the solutions is to implement Microservice Architecture to decompose the software into several microservices which can be maintained independently. Furthermore, to reduce coupling, microservices can communicate using EventDriven Architecture. Event-Driven communication between microservices can be achieved by leveraging messaging systems. However, the implementation of EventDriven communication tends to cause coupling between the microservices and the messaging system that is being used. This in turn increase the difficulty to make changes to the microservices. To solve the coupling problem, an abstraction for event processing is developed to automatically forward events to messaging system. The abstraction is developed to leverage the event system provided by Spring Framework. For the event processing to be automatically forwarded to messaging system, there is a need to develop a Spring Framework extension. The extension is built so that the way for event-driven communication between microservices stay the same regardless of the messaging system that is being used. The benefit of this approach is that to change the messaging system that is being used, there is no need to modify the codes for event processing. Extension is built as several components. The first component is Event Provider abstract class that has concrete class implementation for each messaging system. The second component is Event Registry class to store information about events that are to be processed. To use the extension, simply define both components as Spring Bean. Apart from abstraction of event processing, the extension also helps the software development process. From the testing result, the extension can reduce the line of codes needed to process an event. This is achieved by the automation of repetitive tasks. Furthermore, from the testing result, switching the messaging system can be done simply by changing the extension’s configuration.