CTSE Assignment 02: Microservices Architecture for ERP System Design

Verified

Added on  2022/09/14

|6
|945
|15
Project
AI Summary
This assignment focuses on designing a microservices architecture for a new ERP project, considering the requirements of top management and HR staff. The student evaluates the client's request for a monolithic application, arguing against it due to the dynamic nature of the requirements and the advantages of microservices in terms of scalability, flexibility, and modularity. The assignment includes an architectural diagram illustrating the microservices design, detailing the use of both relational and non-relational databases for employee data, payroll, and attendance information. Assumptions made during the design process are also explained. The student emphasizes the benefits of loose coupling and the ability to independently upgrade sub-systems. The solution highlights the advantages of microservices in managing evolving requirements and integrating future technologies. The assignment also provides a comprehensive overview of the advantages and disadvantages of monolithic architecture in contrast to microservices and how the use of microservices can result in significant cost and time savings.
tabler-icon-diamond-filled.svg

Contribute Materials

Your contribution can guide someone’s learning journey. Share your documents today.
Document Page
Microservices management
Name
Institution
Professor
Course
Date
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Q1: The client wants you to write a monolithic application supporting all of the above
functionalities. State whether you agree with this request or not and why?
Answer:
I absolutely disagree with the customer request. The requirements provided by the client
are quite dynamic, and the requirements can be achieved by adopting a microservices
architecture. The monolithic application adopts monolithic architectural design in the software
development process, which composes all modules into one (Baboi, Iftene, & Gifu, 2019). It is a
tightly-coupled and it is must that all associated modules be present in order to compile the code
successfully. Monolithic applications have most of the functionalities coupled into one process,
and all components containerized to libraries.
Typically, monolithic applications should have a User Interface layer to capture and
present user data. The business application logic layer which defines functional behaviour of the
application, and data access layer which is used to communicate with database hosting
organizational data. Monolithic architecture can be the best methodology to start application
development because it is faster during the early stages of application development (Baboi,
Iftene, & Gîfu, 2019). Despite monolithic offering, the outlined benefit, the growth of codebase
brings code maintenance challenge. Notably, it is possible to develop an application with
required and manageable modularity and achieve clean code. However, the challenge is to
maintain the adopted modularity working in monolithic nature.
Similarly, microservices are defined as the collection of services that exist in an
ecosystem but work independently to achieve desirable results. By using microservices,
flexibility is guaranteed. It becomes easier to make changes in one of the product function
Document Page
without affecting other coupled services in the organization (Di-Francesco, Lago, & Malavolta,
2019). Smooth monitoring can be achieved through microservice architectural design because
each service can be built in various technologies and APIs. It is easier to make changes into the
application, track changes being done by different team members, test application, and debug
errors.
From the client requirements, some of the applications such as employees' details will not
adopt the relational database. Some other services would adopt the relational database and this
makes it impossible to adopt the monolithic architectural design. With the client requirements,
adopting monolithic means developing two sets of databases, which is quite difficult to maintain
due to the tightly coupled nature of monolithic (Di-Francesco, Lago, & Malavolta, 2019).
Considering the client's requirements, some services like payroll and employee data are
interrelating and would keep changing. Therefore, changes from one service would affect all
other correlated services. In monolithic design, changes in one service require specific changes
to be done in other services to keep the application running effectively. As a result, changing all
interacting application due to changes from one application increases project development time
and cost. To resolve challenges associated with monolithic, developers should adopt
microservices which advocates for module modular design, and code reusability. A good
example can be observed when making changes from payroll reporting services and employee
attendance because changes from one module would not necessarily require changes from other
modules. In this regard, scalability, ability to integrate with other future technologies,
modularity, and loose coupling approach makes microservices suitable for the client's need.
Document Page
Q2: Design and draw an architecture diagram for the above use case and explain your decisions
and any assumptions you made.
Answer: Microservices architecture
Data from either of the information management system and both relational and non-
relational database would be accessed by all top management and HR staff. From the client
requirements, the two users in the applications are top organizational management and human
resource staff. Employee data would be used by both HR payroll and employee management
systems to store and retrieve information. On the same note, employee and attendance
information would make use share relational database. The main idea is to keep the system and
services loosely coupled and easy to manage.
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Assumption: The employee data would be shared across different systems and be stored
in both relational and non-relational databases. In this case, the idea is that by using
microservices which is loosely coupled, it would be possible to create and maintain various
applications but sharing data. Data is sharable across platforms through the use of different
technologies without affecting functionalities of the interacting system. For example, employee
data being used by HR payroll and employee management system in a loosely coupled system
does not interfere with functionalities of other. An organization would be able to upgrade each
sub-system independently without minding how other systems work. Microservices flexibility
and scalability make it possible for the organization to upgrade the system to meet organizational
need.
Document Page
References
Baboi, M., Iftene, A., & Gîfu, D. (2019). Dynamic Microservices to Create Scalably and Fault
Tolerance Architecture. Procedia Computer Science, 159, 1035-1044.
Di-Francesco, P., Lago, P., & Malavolta, I. (2019). Architecting with microservices: A
systematic mapping study. Journal of Systems and Software, 150, 77-97.
chevron_up_icon
1 out of 6
circle_padding
hide_on_mobile
zoom_out_icon
logo.png

Your All-in-One AI-Powered Toolkit for Academic Success.

Available 24*7 on WhatsApp / Email

[object Object]