Microservices Loan Application
Microservices Loan Application
ABSTRACT
7064
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
The accumulation of the disbursement amount were strategies and techniques to support the
calculated from various sources, namely from improvement of business, cooperatives are not an
borrowers’ accounts, including both consumer and exception to this.
working capital loans. More than 140 creditors are
The strategy for improving or perfecting
offering loan services across Indonesia annually.
cooperative business lines can be realized by
May 2020 has the greatest number of creditors
conducting digital transformation which demands
providing loan services to customers, at 161
an organization to be nimble and to adopt suitable
companies.
innovation method with good acceleration to ensure
The rise of Covid-19 outbreak at the that the newly developed digital services can be
beginning of 2020 has not reached its conclusion. brought to customers, partners, and staffs alike. To
Indonesia’s government, like many countries achieve this, many organizations took the approach
around the world, has enforced physical distancing of building a seamless application based on cloud
as a countermeasure against the viral infection, with good flexibility, where it is easier to add and
which the Indonesian government called PSBB renew digital services to suit the everchanging
(Pembatasan Sosial Berskala Besar) or literally business requirements and technological
translated as Large-Scale Social Distancing. This capabilities [4]. Old monolithic applications may be
limited people’s activities greatly and ended up acceptable for daily operations, yet these
reducing purchasing power immensely. This applications are not suited to construct digital
occurrence affected Indonesia’s economy services. The traditional monolithic system
negatively as in the same year, there was a decrease architecture and software development method will
with the percentage of 2.07% [2]. Business owners always be hinderances in pushing forward to the
responded to PSBB by implementing WFH (Work desired digital transformation within an
from Home) and WFO (Work from Office) rules. organization [5].
WFH and WFO are done alternately to maintain the
Information system is commonly built with
continuity of business activities without ignoring
monolithic architecture, where each component of
the government’s advice to physically distancing
the system is intended to be built as one unity. A
with each other to slowdown the spread of
single monolithic architecture usually comprises of
Covid-19. Another challenge for the business
tens or hundreds of business functions used
owners is the necessity of adapting and innovating
simultaneously in one software release.
amongst the Covid-19 situation. With or without the
Microservices, on the other hand, usually
pandemic itself, continuous adaptation and
summarizes a single business function so that it can
innovation are necessary to adjust with the present
be scaled and used separately. Developing
conditions and challenges. People have
application for a large enterprise by spreading cloud
insurmountable number of needs, along with the
facilities by creating and managing a number of
necessity of adapting and innovating, are the reason
microservices give the possibility of another
why a modern system must be developed to answer
alternative to improve monolithic architecture. The
those needs. One of the possible ways to provide
challenges that a developer might encounter within
the ability to keep doing activities while
monolithic architecture are the questionable
communicating with the society among a condition
adaptation capability of the system toward system
which greatly restricts face to face interaction is to
requirement changes, mainly in managing codes
adopt a well-established information system and
complexity and its maintainability, where this will
hasten the development of the digitalization of a
cause bottleneck to the services distribution process
company so that the company can move in a
due to tightly coupling of the codes. Therefore, a
dynamic way.
consideration of devising another architectural
Besides, the globalization era gives more alternative to create an adaptive system
opportunities for cooperative enterprises to increase management to suit requirement changes whenever
in number. The cooperatives are competing with needed, is needed [6]. In an architectural design
each other as the result [3]. This circumstance focused on services development, every company
forces every cooperative to be in constant should at least update the system and services
improvement and perfecting the business to be able weekly. PT XYZ, a cooperative enterprise in
to withstand the threat of competitors and to Indonesia situated at Jakarta that the researcher
maintain the cooperatives overall existence for long studied on, is no exception. The case study serves to
term. The advancement of business environment compare the updating process in monolithic
nowadays forces business owners to use many
7065
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
architectural design versus microservices duration variable and the number of services that
architectural design. the system can provide within a preset time, using
Execution Time as the parameter for measuring
Another challenge in using monolithic
duration and Concurrency as the parameter in
architecture is the system development dependence
measuring how many services can the system
on stack of the main technologies which limit the
provide within given duration. This measuring
possibility to develop new functions with newer
method is called load testing, which purpose is to
application framework or a different programming
measure how a website can be accessed within
language [7]. With the increasing functions amount,
certain parameters like execution time and
monolithic architecture gets more complex and
concurrency. RPS is used to gauge the amount of
need larger team of developers to support the
request that can be accepted by the web server
applications within [8]. Scalability in monolithic
within certain duration. Based on the test results as
architecture is also limited, as individual functions
shown in Table 1, the RPS in monolithic system
cannot be run repeatedly separately after usage. The
architecture can be considered as lacking.
repetition must be done to the entire application
which can be very time consuming.
Table 1: Load Testing of Monolithic Architecture
Based on these explanations, if the Using Apache Benchmark
previous system is maintained, it is going to bring No Execution Time (s) Concurrency (#)
Monolithic
disadvantages for the enterprises using the system, RPS (#/s)
1 10 10 2.98
particularly in competing with other enterprises in
2 50 10 3.02
fulfilling customers’ needs. The consequence of
3 100 10 2.92
using the traditional system is that the developers 4 150 10 2.99
have to face the complexity of system development 5 200 10 2.94
and must spare a lot of time to deal with it, which 6 250 10 2.92
can result in slowdown of the advancement of the 7 300 10 2.87
system compared to the system used by
competitors. High operating costs are inevitable in
handling complex system structure as the Apart from doing load testing, monolithic
management needs large team to run the process. architecture capabilities can also be tested with
stress testing. Stress testing is also done using
For instance, loan system in PT XYZ is a Apache Benchmark with the preset parameters
system using monolithic architecture where every being the number of services requested and the
components of the application inside are built, number of services requested at the same time.
designed, implemented, and maintained within a Stress testing is used to measure how a web can be
single union of codes [9]. The biggest drawback of resilient and responding requests from users even
this architecture is the developer might face though the number of requests are high, regardless
adversity in increasing capacity needed for the of the requests are made simultaneously or not. The
system. Constant fixing and improvement of the parameters for testing are Number of Request and
system is difficult as all components should be Concurrency, where Number of Request represents
increased in capacity, even if only one component the number of requests acceptable by the web server
needs capacity increase while the rest do not need and Concurrency represents the number of requests
changes in capacity. For example, the number of acceptable by the web server at the same time. The
SMEs (Small Medium Enterprises) in Indonesia is precise illustration for the stress testing result can
at 59.2 million. This number indicates the chance be seen in Table 2 below.
for request of application services coming from the
customers to be relatively high [10]. Monolithic Table 2: Stress Testing of Monolithic Architecture
system renders the application to be slow Using Apache Benchmark
responding and cannot keep up with the Number of Monolithic
No Concurrency (#)
ever-increasing number of users. Requests (#) RPS (#/s)
1 10,000 200 10.24
Apache Benchmark is used as a tool for 2 5,000 200 9.31
testing the services in PT XYZ with its currently 3 2,000 200 8.66
used monolithic architecture which showed that the
capability of the system can process request of to
3 RPS (Request Per Second). A series of test is also Test results indicated that monolithic
conducted afterwards by changing the testing architecture is capable of supporting the current
services layout, but by combining the results of
7066
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
both load testing and stress testing, it is safe to By understanding the basics of SOA, one
assume that the performance of the services present can recognize microservices architecture which is
at the current business type can be improved even an evolved form of SOA as one alternative of a
further. more measurable architecture with higher flexibility
than SOA. To encourage digital transformation
As implied by reference [11], with a total
efficiently, many organizations are exploring
time required for testing of three minutes, only a
methodologies and architectural style to develop
minute is necessary to discover that the average
new software. In microservices architecture,
response time of applications built on monolithic
information system is designed to be distributed
architecture is significantly lower than the response
into separate parts to provide more focused and
time needed for applications built on microservices
more specific services. Large issues will be
architecture. The accumulated usage of RAM
categorized into small pieces of solutions grouped
(Random Access Memory) by clients of
into one service, where each service has its own
applications built as microservices are higher than
responsibility. This approach creates an information
the RAM usage by clients on monolithic
system comprising of several services which can be
applications. Although the frequency of testing
managed and distributed independently. Thus, the
done was relatively low as most of the enterprises’
system can adapt better to changing needs [6].
server are strong, response time should not be a
problem. Similar result is also discovered in the Another reason for the suggestion of
usage of CPU (Central Processing Unit). microservice architecture in this research is to
reduce difficulty in the process of scaling up the
Microservices architecture originated from
current business, especially in the business segment
Service Oriented Architecture or abbreviated
of loan service in PT XYZ. Business scale up is the
commonly as SOA, one of the possible system
effort to prepare and support the growth and the
architectural style to develop business and
development of a business, be it from the system
technological solution in the form of software as
aspect, resources, processes, technology, or partners
composition of split logics loosely coupled for ease
[13]. An enterprise is ready to perform business
of operation and distribution into separate parts
scale up if the customer retention rate of that
without dependency on each other in order to shape
company is high to the point of receiving large
services. Service orientation or SO for short, is the
quantities of demand from customers, but with
new paradigm to shape services with a set of design
limited services capacity, facing difficulty in
principle like self-description, storing personal
fulfilling the requests. High dependency among
information, autonomous, abstraction, standard
applications in monolithic system can be a barrier in
contract, division of services contents, and ease of
scaling up business of a company. PT XYZ is also
use in locating the services. All of these are set to
vulnerable to the threat if system architecture
fulfill the principle of SOA. This paradigm is the
replacement is not done sooner. The need of
evolution from the traditionally object-oriented
migration from monolithic to microservices
business into components-based manipulation to
architectural style is to give PT XYZ the capacity of
enforce services with great flexibility and
balancing the readiness of the cooperative
interoperability, without neglecting the principle of
enterprise in scale up processes and helping in its
information hiding for the sake of privacy. SO is
realization.
intended to devise software solutions as single
and/or combined services, in regard to SOA A data from [14] indicated that 68% of for-
architectural style running in distributed profit company using IT system in running their
computerization or can be referred to as SOC business had implemented microservices to
(Service Oriented Computing). products and its development, while 26% of them
have learnt microservices but haven’t implemented
SOA approach has several advantages as
it. The remaining 6% didn’t learn and implement
opposed to traditional architectural approaches such
microservices. This reference also pointed out from
as the opportunity for repeated use, better
a case study in UppLabs, a Fintech company from
independency as a platform, lower maintenance and
United States that the company couldnot scale up
development cost, observable with results
the business without replacing the monolithic
determined by network variable and factor, and
architectural style.
various services to choose from with dynamic
composition and dynamic information stream [12]. The final desired outcome of using
microservices architecture is lessened difficulty in
doing business by improving services dedicated to
7067
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7068
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7069
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
1. Nimbleness. Fixing bugs and releasing new understanding about domains and the authenticity
features in applications are made easier by of generated design, DDD emphasizes on an agile
using microservices, as opposed to traditional collaborative modeling from domain experts and
architecture where new features release can be software engineers. Presently, microservices
put on halt whenever bugs are being fixed. architecture is developing as an architectural style
2. Small team and better focus, making creation, for distributed software system with high
testing, and implementation of new features to requirements for scalability and adaptive ability.
be less time consuming. DDD can also dissect domain and define contexts
3. Small code base, making addition of new among the domain, where each are grouped into a
features to be less challenging as each service coherent domain concept. These contexts are
are not reliant to each other. suitable for microservices functionality in providing
4. Freedom to combine many different different business capabilities. Putting DDD into
technologies to suit development needs. practice in microservices design, however, create
5. Isolation of error, like circuit breaking to some challenges regarding the exclusion of some
prevent errors in one service to affect another services from domain model, infrastructure
area of microservices architecture. components modeling, and domain modeling in an
6. The ability to adequately allocate resources autonomous group [22].
into certain areas of needs accordingly.
During strategic phase of DDD, business
7. Data isolation gives the ability to update at
domain are being mapped and defined as bounded
will, minimizing the potential unwanted
contexts for domain modeling. DDD is a tactical
updates to undesired parts of the services.
approach in classifying domain models with high
Microservices’ benefits also come with precision. This tactical pattern is applied into
new challenges that the developer team must tackle, bounded contexts. Applying entities and aggregates
like: pattern in microservices will help identifying
1. Increase in complexity of the entire system natural boundaries for internal services. Using
architecture. common principle, microservices must be greater
2. Development and testing of the services can than aggregates, and must be smaller than bounded
be difficult as available tools can lack in contexts. The initial step would be to supervise this
compatibility to gauge the dependency of a tactical pattern and apply it into the bounded
service, especially if the services are growing contexts. These are the summary for DDD’s tactical
fast. pattern:
3. Lack of proper governance, since 1. Entities, which can be defined as an object
microservices emphasized on decentralized with unique identity stuck and persist during
environment. the course of time. For instance, in banking
4. Possibility of congestion and latency in application, customers and bank accounts can
network. API must be designed carefully to be classified as entities. An entity can be
avoid getting into this issue. distinguished from another entity by looking
5. Data integration becomes a problem as each at GUID (Global Unique Identification
service being in charge of respective data, Number) or the main lock in a database.
generating data consistency issues. Entities identities can include some bounded
6. Logging management issues. contexts and can last longer than an
7. Versioning of services may lead to potential application usage period, e.g.: bank account or
backward or forward compatibility issues. customer ID issued by the bank are not tied to
8. Proper expertise are absolute requirement in application usage period. Entities attributes
handling microservices. The team of can change over time, like one’s legal name
developers that are going to be tasked with can be changed but not the main identity of
everything related with microservices cannot that person. An entity can be linked to other
be just anyone, it must be experts or people entity.
with experience in handling the complexity of 2. Value objects. These objects do not have an
microservices. identity. The only way to distinguish one
2.1.3 Domain driven design value object from another is to examine its
DDD (Domain Driven Design) is a attributes values. Value objects are immutable.
methodology based on models that is popular in use To renew value objects, new examples are
for capturing knowledge of certain domains with always required to replace the outdated value
relevance to a software design. To encourage objects. Value objects can have a method to
7070
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
summarize domain logic, but it shouldn’t have irrelevant in designing boundaries between
a side effect to the objects itself. The example microservices.
of value objects are color, date and time, and
2.2 Specialized Theory
currency value.
According to reference [23], Fintech, a
3. Aggregates, which define the consistency
portmanteau of the word financial and technology,
boundary around an entity or more. Entities in
is a usage of technology in delivering a new and a
aggregates are called root. Searching for an
better form of financial services. One of the reason
aggregate can be done by knowing the root
to adopt Fintech is despite the convenience of
entity identifier. Other entities that are derived
information technology has tackled costs and
from root can be referred to by following the
functionalities related issues, the seemingly
clues from the main root. Aggregates’ main
inevitable intermediary costs of using financial
purpose is to model a transactional invariance.
services never change for more than a century.
In real life, the relationship network between
each aggregate is more complex. For instance, Reference [24] stated that Fintech is a part
customers make a request, the request contains of the growth of innovation process in financial
product specification that the customers industry that is risky theoretically but valuable. This
desire, products are delivered by suppliers, finding is supported by the latest proof that Fintech
and so on. If the application modifies some gives substantial value to the investors. Reference
related objects, it is necessary to discover the [25] also stated that Fintech is the point where
way to guarantee its consistency, tracking the financial services and technology collides. This is
invariance, and enforce it. Traditional not a new phenomenon for banking companies and
application mostly uses database transaction to financial services providers in the era of Fintech the
ensure consistency. However, in a distributed last few years. The evolution of Fintech history are
application, this is almost impossible to do. as follows:
Single business transaction can only reach 1. Fintech 1.0 (1866 to 1967). The first Fintech
some of the data storage, or taking too much era began from the installation of the first
time to do, or maybe require assistance from transatlantic undersea telecommunication
third-party services. In the end, it depends on cable and the invention of ATM (Automatic
the application, not the data layers, to apply Teller Machine), where finance and
the invariance needed in the domain. This is technology are combined to mark the first
how modeling using aggregates are done. period of financial globalization. A technology
4. Domain services and applications. In DDD like telegraph also supported the relationship
terminologies, services are objects used to of finance across boundaries, enabling fast
implement some logics without any status. transmission in financial information
DDD differentiates between domain services exchange, transaction, and payment.
and application services, providing technical 2. Fintech 2.0 (1967 to 2008). The second
functionality, like user authentication or SMS evolution in Fintech history is when it
(Short Message Service). Domain services are remained in exclusive sectors for decades and
often used to model behavior surrounding was mainly dominated by conventional
many entities. financial services providers regulated by the
5. Domain events, to communicate with other authorities that used the technology to provide
parts of the system when something occurs. financial products and services. This Fintech
As the name suggests, domain events area of age is the witness of the beginning of the
concern is only the occurrences in a domain. introduction of electronic payment and
Example of a thing unrelated with a domain is clearing system. Also, usage of ATM was
“notes are put into the table” and the example commercialized with many units of the
of a domain event is “Delivery is cancelled”. machine being produced, which is also
Domain events are relevant in realization of supported by the deployment of online
microservices architecture, since banking system worldwide. In mid ‘90s,
microservices are distributed and not sharing financial services industry became the largest
data storage. And so, domain events serve as a purchaser of IT assets, a record which hasn’t
way for microservices to coordinate with each been surpassed until now.
other. Some DDD patterns like factory, 3. Fintech 3.0 (2008 to the present): Since the
repository, and module are useful in global financial crisis in 2008, startup
implementation of microservices, but companies with disruptive nature and
7071
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
powerful technology enterprises began to send (Credit Union) [27]. The purpose of CU is to
financial products and services directly to encourage its members to save their funds, allocate
business or known as B2B (Business-to- the accumulated funds from the members to provide
Business) and the society where newcomers loan for members in need according to the principle
had tendency to focus at providing single of democracy. There are approximately 88,000 CUs
solution designed to offer better experience in and other cooperatives around the world. In 1986,
only a single product or service. The key the membership of CUs almost reached 114 million
connection of this behavior with Fintech 3.0 is people with total accumulated savings of 540
that the competition amongst banks and other billion US dollars and total loan outstanding of 380
financial services providers were no longer billion US dollars.
from the same businesses. New competitors
2.3 Relevant Past Researches
have surfaced in the form of Fintech
Research by reference [28] entitled
companies, which reshaped the way financial
“Modeling Microservices with DDD” explained that
services are delivered by using advance
DDD can help in providing functional
technologies. Fintech companies in this era are
comprehension on microservices architecture.
capable of mirroring the disruption, as seen by
Although, the method to apply this idea is unclear
wider economic scope with the emergence of
to domain practitioners in common. DDD is a
online platforms like Amazon or Uber that
domain modeling technique developed in early
managed to overcome the already established
2000 while microservices are developed and
conventional financial system. Instead of
popularized years after in 2015. This past research
replacing the current system, Fintech
discussed the basic conception of DD and why and
companies have invented an important
how it can help developing microservices with
infrastructure instead. Fintech is also capable
better availability, scalability, reliability, and
of developing on its own and have been
capability of modification. The researcher navigated
acknowledged worldwide. McKinsey, a global
domain model built with DDD into microservices
consulting firm, has calculated that more than
design based on synchronous REST and
2,000 startup companies offered financial
asynchronous or reactive communication protocols.
services, and predicted that there might be
The researcher dwelled further into five scenarios
12,000 more that will become Fintech
of microservices surrounding the DDD’s
companies.
aggregates, bounded contexts, domain events, and
Nowadays, Fintech companies have vast other strategies for bounded contexts to interact
improvement, so the concept of Fintech itself must with each other.
be implemented to firms or organizations that
A research by reference [29] focused on an
support the improvement of economics, like
IT company developing e-procurement application
cooperatives, whose system currently are very
as the basic product system to fulfill the needs of
traditional. Cooperatives need to adopt a system
automation in internal procurement processes
that is used by Fintech companies, or else, the
discovered that the system was built on monolithic
cooperatives may be less favored by costumers of
architecture where the application is enveloped in a
the financial industry if they view Fintech
large package and had high dependency among
companies as a more attractive alternative to use
modules. The modules were defined as the entire
financial products and services.
process of integration, where if changes occurred to
Cooperative is derived from the Latin word certain module to adapt with business processes,
coopere which is translated literally as cooperation this will affect the other module functions. An
or cooperative in English. Cooperation means alternative for another system architecture style
striving together to achieve mutual goals. In should be put into consideration to have a more
accordance with the 1945 Constitution of the adaptive e-procurement application system and to
Republic of Indonesia Number 25 Article 1 Section be able to overcome issues generated from usage of
(1), cooperatives are business entities that aims to the old architectural style. This past research
bring prosperity to its members by cooperating with suggested the design of transformational process
each other through active participation in the using microservices architecture with DDD
services provided by the cooperatives [26]. approach. The results indicated that microservices
architecture is capable of being more adaptive
One of the most common types of
towards change where the modules are designed to
cooperatives easily found across the world, is
be standalone modules.
savings and loan cooperatives, or often called CU
7072
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7073
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7074
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7075
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
to enter the inbox folder of the e-mail address’ assessment to determine if the applicant is
owner. Inputting the correct OTP combination will creditworthy or not will be conducted. The
complete the registration processes, making the assessment consists of credit collectability rating in
applicant a formal member of the cooperative. PEFINDO credit bureau, an Indonesian credit
However, if the OTP combination is wrong, the bureau in charge of credit rating information
applicant should request for another OTP and nationwide, and appraisal of the offered collateral
recheck their e-mail folders and reinput the new by internal appraisal officer from PT XYZ. If both
OTP to complete the registration processes. assessment are passed, the application will be
approved. If one or both of the assessment are not
passed, application will be rejected. The applicant
is obliged to handover the asset that is offered as a
collateral for the loan after request for loan has
been granted. The collateral will be bound by law
via credit pact with a notary as the authorized
personnel to legalize the credit pact. Pact must be
signed by the applicant and a representative from
PT XYZ. Signed pact is required for credit
disbursement. After receiving loan, the applicant is
officially a borrower to the cooperative.
7076
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
it begin with the visitor accessing the application with a unique password to retrieve the respective
and clicking on the calculator feature without borrower’s loan information through the
having to login, as loan account is given only to application. These information are exclusive and
borrower. Visitor that is not a borrower doesn’t private to every holder of each respective account.
need to have a borrower account to access the Thus, only the owner of the account is authorized to
calculator feature. Then, on the loan calculation access it or PT XYZ’s staff with access
interface, the visitor must input the desired loan authorization. The flow is quite simple. Borrower
amount from the range between IDR 5 million to only needs to access application website, input the
IDR 1 billion and choose credit tenor with the range given account name and password, then the system
between 1 month to 12 months. The next step will direct to a number of information like
requires the visitor to click on Calculation button. borrower’s name, borrower’s unique identifier
The system will respond by displaying estimation number, loan amount, tenor, next payment amount,
of the costs with the composition such as provision payment due date, phone number of the PIC from
fee, amount of loan disbursed, and monthly interest PT XYZ assigned to the borrower’s account, and
based on tenor chosen. Calculation result cannot be another information related with the identity of the
displayed if the information is not properly given borrower. To exit from the information window, the
by the visitor. borrower as the user only needs to logout from the
account.
7077
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7078
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7079
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7080
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
User Entity is a part of the domain storing information needed by Loan Entity. Both entities
and managing access data and information of users are correlated with each other to realize the Loan
involved in accessing the loan system, such as Application domain processes, especially in Loan
cooperative members, reviewers, committees, and Application Review and Loan Application
admin staffs and customer service staffs. Approval involving Reviewer and Committee
teams. In reviewing and decision-making of loan
approval, Loan Entity will record ReviewerResult
information containing specific details of
examination, application status change, rejection of
application, or forwarding to the Committee team
for final approval process. CommitteeResult
Figure 13: User Entity records the final decision of approving or rejecting
the loan application, if the final decision is to
Member Entity is a part of the domain approve the application, it will also have details of
storing and manage data of processes in member the loan amount, payment terms, covenant to fulfill,
registration, where the record of the data in the and another piece of information related with loan
form of e-mail, name, national ID number, Tax ID, disbursement. All the approval results will also
and other forms of personal information lie inside. later be recorded as Loan Result Scheme. In every
Member Entity is connected to User Entity as the loan application information, system will also
User Entity is aggregated to OTP verification code record every changes in the process of application
information required in the process of membership in ApplicationStatus.
registration verification.
Borrower Entity is a part of the Loan Loan Result Scheme Entity is a part of the
Application domain. This entity is aggregated to Loan Information domain but also has relationship
Member Entity as an enforcement of a with Loan Application domain. This entity plays
cooperative’s basic rule where only a member is the role of keeping and managing the approval
allowed to apply for loan services. Information information and the loan specification exclusively
recorded in this entity are IdentityData and associated with the respective applicant. This entity
GuarantorData. IdentityData stores record of is aggregated to Borrower Entity that keeps
borrower’s personal information, similar to the essential information like borrower’s personal data.
member’s personal information stored in Member For easier information storing, Loan Result Scheme
Entity, whereas GuarantorData stores information Entity is further divided into smaller information
related with collateral ownership, like collateralized groups, such as: LoanAmount, LoanTenor,
asset certificate of ownership. Installment, Collateral, and LoanPaymentStatus.
LoanAmount has the accepted amount of loan
disbursement. The amount of loan could be equal or
less than the amount requested, but not greater.
LoanTenor is the credit term ranging from 1 month
to 12 months, depending on the approving decision
of the committee. Installment is monthly
expenditure that the borrower must pay as
Figure 15: Borrower Entity
obligatory act of using the loan in accordance with
Like Borrower Entity, Loan Entity is also a LoanTenor. Collateral has the collateralized asset
part of the Loan Application domain, which is information, consisting of the collateral type, name
responsible for storing and managing loan of the owner stated in the collateral legal document,
application data. Loan Entity is aggregated to and another information related with the collateral.
Borrower Entity that stores the important LoanPaymentStatus is useful in monitoring the
7081
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
payment status of the borrower to ensure that when entirely maintain its invariance in the context of
payment is due, the installment and other credit Loan Application as a domain in the system.
costs are paid accordingly to prevent the 4.4.5 Defining services as the core component
collectability rating of the borrower to fall into the of microservices design
category of NPL (Non-Performing Loan). Services to create the microservices design
needs to be formed in regard to the DDD approach.
The components for materialization of services into
the microservices architecture for PT XYZ loan
application system are discussed in the
subsubsections below.
4.4.5.1 Designing single services
Single services are designed to be able to
Figure 17: Loan Result Scheme Entity operate independently yet capable of
communicating with each other with a light
FAQ Entity is the central source of
connection mechanism, like HTTP. The services
information that acts as the knowledge base of
are designed to suit every business line capabilities
services and general information surrounding
for it to be able to run independently with automatic
PT XYZ. FAQ Entity is broken down into smaller
deployment by deployment server. Each service has
groups, they are Question and Answer. Question is
center management, enabling different
a compilation of the question mostly asked by
programming languages and database to be used for
visitors while Answer provides the answers to the
each service. The single services consist of a web
questions. Another small component called Topic is
server, focused service binary for certain domains,
applied to categorize each question and answer.
and Redis cache system.
4.4.5.2 Database for every service
Database are designed for every service
with respect to consistency of aggregate forms with
bounded contexts. Creating database this way will
reduce coupling of the services.
4.4.5.3 Container strategy
Figure 18: FAQ Entity
Planning for microservices architecture
design on loan application system comes with
4.4.4 Defining aggregates consideration for containing the service
Aggregates definition is done to model applications. This containing is executed to
transactional invariance. Business process in real distribute services in infrastructure level prioritizing
life has a complex relationship network, where convenient practice and service capabilities to
applications are often not properly distributed. A operate simultaneously yet independent. The
business transaction can span across several data researcher uses Docker for services containment in
storage, runs longer than expected, or require this design, which uses vary, i.e.:
third-party services to run. The execution in the end 1. Provide binary images that prepare
depends on the application to enforce invariance installation, configuration, and testing for
needed by domain, not the data layer. Aggregate every software needed to form the services for
modeling can help in bounding contexts around one the designed microservices architecture. Data
or more entities to ensure consistency, tracking distribution is made convenient with the
invariance, and enforce them. For instance, the inclusion of every necessary data needed for
defined aggregates depicted in Figure 19 in the the process.
appendices section has Loan Application running 2. Interactively create images for software
aggregate function to Borrower, particularly in developers to learn the software installation
determining borrower and guarantor information. process transparently. This ability ease the
These information are needed to be located and documentation process of system design with
maintained for consistency in business transaction. expected precision.
However, from aggregate’s perspective, Borrower 3. Usage of Docker can reduce the significance
aggregate is not responsible to Loan Application of fixing and improvement of the system with
aggregate to convince that BorrowerID is unique. It versioning, changes in system dependency,
is up to Loan Application aggregate itself to security level, addition of features, or deletion
7082
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
of outdated software that may potentially system to be able to run without disruption. By
harm the system. combining two communication protocols across
4. Docker tackles constraints in adoption and services, namely sync communication protocol and
reuse of existing system with its reproductive async communication protocol to suit various
capabilities for more convenient adaptation services requirements, the need for simultaneous
process to the existing system workflow by interaction can be carried out with less hassle.
management using script.
Sync communication protocol works when
Container has logic containing mechanism a request is sent, and system waits for response
where applications can be separated by decoupling from service receiving the request. The limitation
that will enable easier use with maintained of this protocol lies on the inability of clients
consistency. Different containers can exchange continuing tasks before server respond to the
information with each other with this mechanism. request. In contrast with sync communication
4.4.5.4 API gateway strategy protocol, async communication protocol doesn’t
API gateway connects clients and services rely on server’s response to continue doing tasks.
with its capabilities of running tasks across sectors The recommended sync communication protocol
with aggregation, SSL (Secure Sockets Layer) and async communication protocol for the
checking, and load balancing. In this design plan, microservices architecture design are HTTP and
the researcher recommends KrakenD, an API Kafka respectively.
gateway services with benefits including: 4.4.5.6 Proxy and firewall strategy
1. Information aggregation from various Firewall and proxy act as the first line of
information sources to the central endpoints. defense for system security to protect the system
2. Manipulating responses along with grouping from external threats like hackers attempting to
and wrapping. disable the system. Both protect the system from
3. Filtering and shrinking of response to enable harm yet located at different parts of the system.
abstraction. Firewall is located at network later whilst proxy is
4. Limiting unnecessary connection with rate placed at application layer. Firewall halts all
limiting function. unauthorized access to the system while proxy acts
5. Enabling circuit breaker and/or another system as an intermediary between the clients and the
security measures. network. Cloudflare, a software useful in mitigating
6. Providing various password protocol encoding DDoS attacks is capable of doing both tasks of
formats. securing the system. Cloudflare can mitigate the
7. Compatible with various middleware and risk of private information theft in the loan
plugins. application system like the cooperative members’
8. Configuration of DSL (Digital Subscriber data and borrowers’ data.
Line). 4.4.5.7 Resilience strategy
9. Support for usage of scripting language across Resilience in the context of IT system
sites. means capability of a system to recover partially or
10. Limiting host-based connection. fully from the aftereffect of system failure. Circuit
11. User quota management. breaker can be used in microservices architecture as
12. Support to SSL. a preventive mean to circumvent system failure.
13. Support to OAuth CCG (Open Authorization System defense can be upgraded if the circuit
Client Credential Grant). behavior is suited for partial or full network
14. Protection against clickjack. interaction with the services. Circuit breaker
isolates services with problems so cascading won’t
KrakenD offers benefits that normal API
spread to other services to ensure stability of the
gateway may not be capable of as it uses backend
clients and the overall services. The researcher
for frontend approach, enabling a more efficient
suggests for a custom build circuit breaker for the
process of adopting existing APIs into newer
microservices design to give convenience in
system’s API, making it suitable for designing
customization whenever needed.
microservices.
4.4.5.8 Monitoring strategy
4.4.5.5 Communication strategy
Services monitoring are going to be done
Services relying on microservices-based
with logging as a supporting tool in analyzing
system runs simultaneously across more than one
issues in the system and to better understand the
server or host. This simultaneous interaction
needs of borrowers as the service users to improve
becomes a necessity to maintain the complex
loan products and services performance.
7083
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
Graylog is a log management software 5. Using standard protocol that supports OpenID
suggested by the researcher to monitor the services Connect, OAuth 2.0, and SAML (Security
in PT XYZ microservices architecture design. It is Assertion Markup Language).
capable of reducing complexity and time required
In entirety, Keycloak is helpful to manage
to explore large amounts of data so clients of the
user authorization to suit the needs of developer
system can interpret data to make decision faster.
team or as desired.
4.4.5.9 Testing strategy
4.4.5.11 CI/CD (Continuous integration/
The tiniest unit of separated business logic
continuous development) strategy
is the basis of constructing microservices. To
As explained before, containing using
ensure the business logic can interact with each
Docker can be a solution to lessen the gap between
other through network, testing on this unit is
applications and system infrastructure. However, if
important. Testing is conducted by validating each
applications grow in number in the microservices
business logic or service separately.
architecture, the management and deployment of
Katalon Studio is a software suggested for services will be harder as services containment
testing of service applications qualities and won’t suffice. And so, usage of container on
functions. The software is capable of testing web- services can be merged with CI/CD approach for
based applications and APIs without requiring automatic deployment processes of the service
mastery of a specific programming language. This whenever update is needed to the applications.
removes one hurdle for testers in doing automated
testing. Both expert testers or beginners can utilize
Katalon Studio easily because of its simple yet
informative UI (User Interface). Testing can also be
done across different web browsers, which means
testing on several browsers can be done at the same
time to save time and effort from the testers.
4.4.5.10 IAM (Identify and access management)
strategy
IAM (Identify and Access Management)
can be utilized to manage access and user identities
surrounding system, application, and network so
each user can have access rights accordingly, or to
identify if the user is the authorized person, in
regard to access time and access purpose.
Keycloak can be used to support IAM
processes with its varying features, they are:
1. Users don’t have to authenticate the
applications one by one. The authentication
process can be replaced by Single-Sign On,
making one attempt is enough to login to all
applications. The same principle also applies
for logout, where Single-Sign Out enables
logging out from all applications with only
one attempt.
2. Login is made convenient with options to
login from social network.
3. Keycloak can be opted to connect to LDAP
(Lightweight Directory Access Protocol) or to
active directory.
4. Admin console makes it possible to activate or
deactivate application features, managing
application authorization and services, and
managing users.
7084
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7085
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
11. Continuous integration and services proposed design is going to be discussed in FGD
deployment are possible to do because every (Focus Group Discussion) where system
developers or system administrators can work practitioners in PT XYZ are taking part in the
together for maintenance or deployment of the discussion, including CTO and the IT team
services. comprises of UI/UX, system developer, frontend
developer, web developer, QA, and system analyst.
In comparison with the previous researches
The purpose of conducting FGD is conducted to
highlighted during the analysis of literatures to
reach consensus on which part of the proposed
construct the theoretical framework for this
design can be implemented in the future.
research, the microservices architecture design has
addressed the software requirements in a more 5. CONCLUSION
specific way compared to the referred past
researches. Moreover, these past researches only 5.1 Research Conclusions
mentioned the necessity of setting bounded contexts The design of microservices using DDD
among domains and its subdomains but lacking any approach yielded a detailed analysis that answers
concrete suggestions of what software are needed to these formulated research questions:
spawn a more realistic microservices architecture 1. How using microservices architecture to
design. Peering into the business orientation of a design the loan application system for
cooperative enterprise, the company emphasizes on PT XYZ can reduce the difficulty of the
delivering financial services to customers, which is system design processes?
similar to Fintech companies. Fintech companies, Reduction of dependency among service
particularly the Fintech 3.0 companies outshine groups in microservices architecture gives
cooperatives when it comes to utilization of convenience toward IT system design
information technologies in business. The processes at PT XYZ. Each service can be
revolutionary form of financial service providers contained without having to be dependent on
have been using technology to deliver services for each other.
customers since the day of the Fintech 3.0’s 2. How the DDD (Domain Driven Design)
inception. A cooperative enterprise can improve approach can help in designing microservices
significantly by merely enhancing the IT system of for the loan application system of PT XYZ
the cooperation. By adapting the use of a more cooperative enterprise?
computerized operating mechanisms that are SOA is implemented by focusing business into
properly regulated, the companies are more likely to services, where the main service in this case is
catch the attention of potential customers and loan service provided by PT XYZ for its
existing customers who favor the use of IT-based members. Microservices have pivotal role in
financial services. Converting to microservices will breaking apart the loan services into smaller
bring greater flexibility in modifying the system subcomponents. These subcomponents are
should the need arise in the future. With so little to visualized in 5 different modules, which is
no problems to face, the cooperative enterprises can also classified similarly in the current
dedicate more focus into delivering services to monolithic architecture, namely: Customer
customers. The use of IT itself is not just to increase Services, Loan Application, Loan Calculation,
competitiveness among financial service providers Loan Information, and Register modules. The
but is a complete necessity. Keeping up with the complexity of design using microservices are
technological trends in the financial industry can apparent due to it using large amounts of code,
also prevent the Fintech companies to dominate the creating a potential for security breach. To
entire industry. circumvent it, DDD (Domain Driven Design)
is used to define bounded contexts to reduce
Microservices design for PT XYZ doesn’t
the code base in every domain and subdomain
offer solutions without making room for possible
in the scope of designed system. The reduction
issues, mainly from security perspective. Even
of code base will reduce the chance of hacker
though with the mitigation measures to defend from
attacks.
cyber-attacks. That is why DDD approach with
proper setting of bounded contexts on domains and In addition, the realization of
subdomains are proposed to lessen the risk by microservices depends on the final decision of the
shrinking the code base of services. Large code authorized personnel in PT XYZ. The design
base can create a security hole where system is components take care of the monotony in the
more likely to be vulnerable to attacks. The current monolithic system design but may create
7086
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
the problem of complexity. Some components which area needs to be improved furthermore, in
require the handling by experts, while other order for the microservices to be able to run
components might be friendlier to inexperienced smoother with less issues. These recommendations
programmers. Dissection of the domains and are not limited to PT XYZ as the research object of
subdomains can be time consuming as it is this case study, but also for other researchers
necessary to execute the task carefully. Reducing interested in similar field of study to inspire future
code base with careful setting of bounded contexts researches to be conducted, with the hope that an
among domains and subdomains is essential to even better suggestions can be created to perfect the
prevent future errors to occur. Microservices, like already designed IT system architecture. These are
monolithic architecture also possess its own flaws those recommendations:
that should not be taken lightly. Despite these 1. Freedom to use various programming
difficulties, the potential benefits of implementing languages between services creates service
microservices can overshadow the design integration issue. Usage of technological
difficulties, among these benefits is the guaranteed enablers that support the development of
capability in handling large number of system microservices without relying on a specific
users, which in the end can boost PT XYZ’s programming language is advised to prevent
business performance in delivering loan for integration trouble.
members of the cooperation. 2. System practitioners in an organization or firm
must have knowledge of domain modeling in
Thus, by enhancing the performance of the
an IT system because it is indirectly useful in
loan application system in scaling up business with
reducing codes used to prevent hacking risk
the ability to establish low dependency among
from unauthorized parties.
applications, the research is exclusively aimed to
3. DDD implementation plan can unnecessarily
solve the system architectural problem in
waste effort and time. DDD is actually more
cooperative enterprises like PT XYZ.
effective to be used on a system with complex
5.2 Research Limitations domain structure. An approach of system
Determining the correct approach in development that is compatible with both
designing microservices can proved to be a simple and complex systems are strongly
challenge. Since there are a lot of mention about needed.
DDD in various literatures, the approach is believed 4. Microservices existence depend on automation
to be the most reliable in designing microservices process too much. Cloud technology used to
architecture. However, whether it truly is the most store data needs to be put into consideration
reliable approach in designing microservices is still carefully so in the case of force majeure, the
a matter of question. There is other approach called services can continue to work fine as is.
Clean Architecture proposed by a software
REFERENCES:
practitioner named Robert C. Martin or more well-
known by the nickname Uncle Bob [31]. The
author claimed that it is a method suitable for [1] Otoritas Jasa Keuangan, “Perkembangan
designing microservices, but the narratives are built Fintech Lending Desember 2020,” Otoritas
in a book instead of a research paper, making it not Jasa Keuang., pp. 1–11, 2020, [Online].
suitable to be cited for this research. Not to mention Available:
it is also viewed as being impractical and not https://www.ojk.go.id/id/kanal/iknb/data-dan-
suitable for rapid application development or statistik/fintech/Documents/Statistik Fintech
product prototyping [32]. It can be concluded that Lending Desember 2020.pdf.
the limitation of this research lies in the difficulty in [2] Badan Pusat Statistik, “Ekonomi Indonesia
discovering the possibility of other approaches 2020 Turun sebesar 2,07 Persen (c-to-c),”
better than DDD in designing microservices 2021.
architecture. https://www.bps.go.id/pressrelease/2021/02/0
5/1811/ekonomi-indonesia-202 (accessed Jul.
5.3 Future Research Recommendations
15, 2022).
Microservices might be the solution to
reduce dependence among services. However, [3] Sudarsono and Edilius, Koperasi dalam Teori
usage of microservices are more complicated & Praktik, 5th ed. Rineka Cipta, 2010.
compared to traditional system architecture, which [4] D. J. Teece, “Business models and dynamic
needs intensive care and special countermeasure to capabilities,” Long Range Plann., vol. 51, no.
tackle potential issues. The researcher recommends 1, pp. 40–49, Feb. 2017, doi:
7087
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7088
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
10.1109/MS.2018.2141028.
[23] A. V. Thakor, “Fintech and banking: What do
we know?,” J. Financ. Intermediation, vol.
41, 2019, doi: 10.1016/j.jfi.2019.100833.
[24] M. A. Chen, Q. Wu, and B. Yang, “How
Valuable Is FinTech Innovation?,” Rev.
Financ. Stud., vol. 32, no. 5, pp. 2062–2106,
2019, doi: 10.1093/rfs/hhy130.
[25] Consumers International, “Banking on the
future: An exploration of fintech and the
consumer interest,” Financ. Dev., vol. 56, no.
1, pp. 24–25, 2017, [Online]. Available:
https://www.consumersinternational.org/medi
a/154710/banking-on-the-future-full-
report.pdf.
[26] T. S. Partomo, L. Krisnawati, and R.
Soejoedono, Ekonomi skala kecil/menengah
dan koperasi. Ghalia Indonesia, 2002.
[27] World Council of Credit Unions, “World
Council of Credit Unions Official Website,”
2021. https://www.woccu.org/ (accessed Jul.
18, 2022).
[28] P. Merson and J. Yoder, “Modeling
Microservices with DDD,” Proc. - 2020 IEEE
Int. Conf. Softw. Archit. Companion, ICSA-C
2020, pp. 7–8, 2020, doi: 10.1109/ICSA-
C50368.2020.00010.
[29] A. N. Fajar, E. Novianti, and Firmansyah,
“Design and Implementation of Microservices
System Based on Domain-Driven Design,”
Int. J. Emerg. Trends Eng. Res., vol. 8, no. 7,
pp. 3058–3062, 2020, doi:
10.30534/ijeter/2020/30872020.
[30] C. S. Budi and A. M. Bachtiar, “Implementasi
Arsitektur Microservices pada Backend
Comrades,” p. 6, 2019, [Online]. Available:
https://elib.unikom.ac.id/files/disk1/801/jbptu
nikompp-gdl-cahyantose-40046-8-20.10114-
a.pdf.
[31] R. C. Martin, “Clean Architecture: A
Craftsman’s Guide to Software Structure and
Design,” Prentice Hall. p. 432, 2017,
[Online]. Available:
https://www.amazon.com/Clean-Architecture-
Craftsmans-Software-
Structure/dp/0134494164%0Ahttps://www.sa
faribooksonline.com/library/view/clean-
architecture-a/9780134494272/.
[32] D. Lezhnev, “When clean architecture is not
worth it,” 2017.
https://lessthan12ms.com/when-clean-
architecture-is-not-worth-it.html (accessed
Sep. 09, 2022).
7089
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7090
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7091
Journal of Theoretical and Applied Information Technology
15th December 2022. Vol.100. No 23
© 2022 Little Lion Scientific
7092