coinresearch-ai / product-management

0 stars 0 forks source link

[RESEARCH] Do research on framework selected for our backend platform services. #2

Closed Aries1711 closed 1 month ago

Aries1711 commented 1 month ago

Context: RESEARCH FRAMEWORK BACKEND API PLATFORM SERVICES

Overview

A new directive was arrived to handle our backend application services for our platform API services. Need to do research on some candidate framework below:

  1. Django (python language base)
  2. Nest.js (javascript language base)
  3. Express.js (javascript language base)

Issues Reference

Platform Targeted

Definition of done

CC: @chiefardi @coinresearchai

relevant resource :

  1. (Proposed coinresearch Ops System Infrastructure )[https://github.com/coinresearch-ai/coinresearch-platform/wiki/Infrastructure-Diagram]
Aries1711 commented 1 month ago

Key point 1 :

Enterprise-level application API: Fast performance, scalability, robustness (start from MVP)

1. Django

2. Nest.JS

3. Express.JS

Based on this Key point and the value between the item self I considered choosing nest.js for our API Platform services cause it has strong greater performance along with its scalability and type-safe that is good for next when our team is grown (large team or enterprise) and not monolithic approach beside it has good value on Asynchronous event-driven that was modern schema this programming era. Besides nest.js was built on top of express.js but still it has the same performance and capability to be compatible with microservice tasks cause nest js was designed for the microservices ecosystem (microservices are the magic needs to our API services due to complex services we are going on).

Aries1711 commented 1 month ago

Key poin 2 :

Performance in development (scalable for modular and feature context)

1. Django

2. Nest.Js

3. Express.Js

Based on these key points and their value, I chose Nest.js because it outperformed the others and was the perfect match for our main objective of developing these API services (Modularity, Microservice-friendly, TypeScript Support, Not to native).

Aries1711 commented 1 month ago

Key point 3 :

Future Features WebSocket server development

1. Django

2. Nest.Js

3. Express.Js

Based on the evaluation of these three frameworks—Django, Nest.js, and Express.js—Nest.js stands out as the best choice for our API services. Here's why:

Aries1711 commented 1 month ago

Key point 4 :

Ops Infrastructure on GCP

1. Django

2. Nest.js

3. Express.js

After reviewing the compatibility and deployment features of Django, Nest.js, and Express.js with Google Cloud Platform (GCP), Nest.js stands out as the best choice for our microservice architecture. Here's the breakdown:

Django offers wide compatibility with GCP services but can be slower in microservices environments due to Python's overhead and lacks the modularity required for large-scale, distributed systems. Express.js is lightweight and easy to deploy on GCP, but for more complex and scalable deployments, it requires additional configuration and setup. Nest.js provides seamless integration with GCP infrastructure such as Google Kubernetes Engine (GKE), Cloud Functions, and Pub/Sub, and its microservice-ready modularity makes it an ideal choice for scalable, containerized deployments. Given its strong alignment with GCP services and microservice needs, Nest.js is the most suitable framework for our development and deployment goals.

Aries1711 commented 1 month ago

@chiefardi I think Nest.js is the perfect match for our API Services Platform, which will serve as the main application API and system services. After reviewing several reference boilerplates, I found one that will save us time. Here’s the link: https://github.com/brocoders/nestjs-boilerplate/tree/main. I'm already install it on my local and do dockerize the services and push to our repo here : https://github.com/coinresearch-ai/api-platform-services