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...
Saved in:
Main Author: | |
---|---|
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 |
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.
|
---|