MFV Tech Talk #3 - Microservice Architect | Hill
1. Introduction of SCI project
SCI is a service that allows a user to upload an invoice in a different format(CSV, PDF, API) then they can send an invoice to their customer. We have several main features:
- Sending Invoices through different channels such as Web, Email, Postal
- Invoice status management
- Receipting of invoices, centralized online management
- Centralized management of all sent invoice data
Challenges:
- Each time a user uploads and sends an invoice, they usually upload a large amount of the invoice.
- Many offices use our service at the end of the month
- Our system must integrate into many different systems such as MIFID, Navis, ERP, Sutech, NexWay, SendGrid, Senju, HR master,...
=> To address these challenges, we decided to use micro-service architecture
2. Microservice architecture
a. Benefits of Microservices:
- Scalability: Microservices allow for independent scaling of different components of an application. This means that you can allocate more resources to the parts of your system that require it, without affecting the entire application.
- Flexibility: Microservices enable teams to work independently on different services, using different technologies and programming languages. This allows for faster development and deployment cycles, as well as the ability to choose the best tool for each specific task.
- Fault isolation: In a monolithic architecture, a single bug or failure can bring down the entire application. With microservices, failures are isolated to individual services, minimizing the impact on the overall system.
- Continuous delivery: Microservices make it easier to adopt continuous delivery practices, as each service can be developed, tested, and deployed independently. This allows for faster and more frequent releases, reducing time-to-market.
- Resilience: Microservices can be designed to be resilient to failures. By implementing redundancy and fault-tolerant mechanisms at the service level, the overall system can remain operational even if individual services fail.
- Maintainability: Microservices promote loose coupling between services, making it easier to understand, modify, and maintain each service independently. This can lead to improved code quality and easier debugging.
b. Challenges using microservices
- How to decompose into a microservice
- Distributed transaction
- How to make microservices fault-tolerant
- Managing configuration settings for microservices
- Monitoring and debugging
c. How to apply Microservice architecture to the SCI project
All details will be vividly shared in this video. Please enjoy
Thank you for your time.