Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalize the Tech Stack - Go vs Node.js #316

Open
12 tasks
viraj89 opened this issue Dec 13, 2024 · 1 comment
Open
12 tasks

Finalize the Tech Stack - Go vs Node.js #316

viraj89 opened this issue Dec 13, 2024 · 1 comment
Assignees
Labels
beckn onix beckn onix project

Comments

@viraj89
Copy link

viraj89 commented Dec 13, 2024

Description

Evaluate and finalize the technology stack for the project by comparing Go and Node.js. This decision will determine the long-term maintainability, support, and scalability of the project. The evaluation should be conducted based on well-defined metrics and data-driven analysis, with clear points prepared for discussion by December 16. The analysis will focus on modular architecture, library support, security, maintainability, and team skillsets. Team members will collaborate in pairs to ensure a comprehensive evaluation.

Key Considerations:

  1. Metrics-Based Evaluation:

    • Define and document key metrics for evaluating Go and Node.js.
    • Examples: Performance benchmarks, library support, ease of integration, security, and developer productivity.
  2. Modular/Plugin-Based Architecture:

    • Assess Go's ability to support modular/plugin-based architectural frameworks.
    • Identify any open-source frameworks/plugins available in Go or the feasibility of building a custom solution.
  3. Library Support:

    • Compare the breadth and depth of library support in Go vs Node.js for key functionalities.
    • Focus on available JSON-based schema validation libraries in both ecosystems. If missing in Go, assess the effort required to build such functionality.
  4. Security:

    • Evaluate Node.js libraries for security vulnerabilities and identify the right tooling (e.g., npm audit, OWASP Dependency Check).
    • Compare security measures between Go and Node.js for maintaining a secure codebase.
  5. Maintainability and Long-Term Support:

    • Analyze the longevity and maintainability of each technology.
    • Assess how each technology aligns with project scalability and future updates.
  6. Team Capability and Skillset:

    • Review the current team's capability and expertise in Go and Node.js.
    • Identify the training and onboarding efforts required for adopting the selected technology.
  7. Team Collaboration:

    • Tanya and Deepa can pair up for the evaluation as one team.
    • Abhishek and Ankit can pair up for the evaluation as another team.
    • Each pair will document findings, perform metrics-based evaluations, and prepare discussion points for December 16.
  8. Data-Driven Decision:

    • Support the decision-making process with facts, figures, and weightage-based scoring for each consideration point.
    • Prepare a consolidated summary of findings for presentation during the discussion.

Goals

  • Perform a detailed analysis of Go and Node.js across key evaluation criteria.
  • Conduct metrics-based evaluations and document findings.
  • Pair teams (Tanya & Deepa, Abhishek & Ankit) to focus on specific aspects of the evaluation.
  • Prepare discussion points for a meeting on December 16.

Expected Outcome

A clear, data-driven decision on whether Go or Node.js should be used as the primary technology stack, along with documented reasoning for the choice, ready for discussion on December 16.

Acceptance Criteria

  • Key metrics for evaluation are defined and documented.
  • Modular/plugin-based architectural support is evaluated for both Go and Node.js.
  • Library support and security considerations are documented.
  • JSON schema validation tools are compared for both stacks.
  • Maintainability and scalability of the project are factored into the decision.
  • The team's capability and required training efforts are documented.
  • Discussion points are prepared and shared ahead of the December 16 meeting.
  • A recommendation is provided with supporting data and a weighted score.

Mockups / Wireframes

NA

Product Name

Beckn

Domain

TBD

Tech Skills Needed

  • Expertise in Go and Node.js ecosystems
  • Modular framework evaluation
  • Security analysis and tooling
  • JSON schema validation tools
  • Metrics-based evaluation

Complexity

High

Category

Architecture

Sub Category

Tech Stack Evaluation

@viraj89 viraj89 added the beckn onix beckn onix project label Dec 13, 2024
@ankitShogun
Copy link
Contributor

ankitShogun commented Dec 16, 2024

  • Comparison exercise and regional ecosystem details are documented here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beckn onix beckn onix project
Projects
None yet
Development

No branches or pull requests

3 participants