ISO-TC211 / iso-geodetic-registry

ISO Geodetic Registry backend
https://registry.isotc211.org
Other
5 stars 4 forks source link

Split API and frontend #26

Open ronaldtse opened 4 years ago

ronaldtse commented 4 years ago

The registry currently renders HTML at the server side and treats API access as a second-class citizen. This task is to reverse the role so that API access is the primary method of accessing, allowing it to be machine-useable, and then implement a front-end that utilizes that API.

phuonghuynh commented 4 years ago

Sub issues list:

phuonghuynh commented 4 years ago

After playing arround and actual deploy a simple migrated controller to AWS Lambda, it taking about 40s spring context cold start. So we can start new Spring Application and extract legacy components to it, remove some layer not good for micro service, i.e. ORM, Spring Workflow, Spring Themleaf, ... This new application need to quick start in about 2s We need to finding the domain boundaries in a legacy monolith and extract one by one to new Lambda service. We also can have several Lambda APIs if needed. I think we can add one more layer to the monolithic applicaion to integrate with new adding lambda service untill we extract them all

bbehling commented 4 years ago

Here is an interesting article. Perhaps some of these techniques could help

https://pattern-match.com/blog/2020/03/14/springboot2-and-aws-lambda-provisioned-concurrency/

phuonghuynh commented 4 years ago

Nice article, the point is that it added a wating thread for 4seconds

Thread.sleep(40000);

I prefer we could do SpringBoot Cloud Function to evaluate the cold start time. We will remove some big layers as ORM, Workflow.. in the new application. We will extract legacy components and keep the application to be smallest.

bbehling commented 4 years ago

I put together a POC project using Spring Boot Cloud Function. I'll get the functions in AWS Lamda this week and document it's performance.