top of page

Monolithic to microservices - Design strategy proposal for a client

Updated: Oct 15, 2021

A Canadian company building for the last 20 years a Financial product used for enterprises, was experiencing a constant loss of revenue.


The company CEO approached me with the request to study their business and suggest a design strategy for the future.


This strategy has to include the following:

  • support their 200+ existing clients.

  • update a complex development process that uses proprietary tools for rapid development.

  • re-design the application to scale well for the Cloud.

  • re-design the application UI and improve sales.

  • migrate to latest Oracle version (19c).

  • remove the dependency from Oracle database system for the future.


The company main application was initially designed as a thick client.

This constraint requires the company to create a dedicated environment for each client.


The company was in the process of building a web application and have it available in the AWS Cloud via AppStream.

The proposed architecture final stage it is displayed above.

The main features of this architecture are:

  • Multi-tenant.

  • Migration of the business rules from Oracle stored procedures into the middle tier.

  • Microservices.

  • Cross platform.

In Phase 1, I have suggested building an Angular framework to consume the rapid development tool forms. The framework allows each project to be saved individually as an Angular project that can be improved further by developers.

In Phase2, while building the multi tier architecture, I have suggested to migrate the business logic from Oracle stored procedures into AWS Lambda functions. AWS Lambda functions can be called from inside PL/SQL.

In Phase 3, the accent will be placed on repackaging the main modules and work on adding UI improvements on them. The least important modules content will be delivered dynamically by the existing engine.

In Phase 4, the microservices will start to be built. Microservices will communicate via an event notification system and queues. The databases will be split per services / responsibilities and multiple clients.

In Phase 5, the desktop legacy application will be changed to consume the same service layer and business logic as the web application.

In phase 6, the development process will continue by adding new projects / modules on all tiers.

The development strategy consists on mixing up the existing process (rapid development tool) while adding support for improving UI functionality by a dedicated team.

New team (UX designer, application developer) will work on improving the main modules / projects as a dedicated effort.


Cost analysis - exercise using AWS Cost Analysis tool to put together a potential cost structure for the future development and compare with what the company experiences currently.






These slides shows some details about the analysis of this client's process and architecture that may help you understanding the work I was involved with.

148 views0 comments

Recent Posts

See All

Distributed transactions in the Cloud - part II

Last year I worked on several Cloud integrations between various vendor applications used by an educational institution. These integrations make use of a disconnected architecture where a service bus

Distributed transactions in the Cloud - part I

One of the most common problem that a microservice architecture is facing is performing a transaction across multiple services. A distributed architecture is based on a number of small components, fun

  • Facebook profile
  • Twitter profile
  • LinkedIn Profile

©2020 by PlanetIT. Proudly created with Wix.com

bottom of page