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

Split api into chain related/unrelated apps #344

Open
4 tasks
ygrishajev opened this issue Aug 30, 2024 · 2 comments
Open
4 tasks

Split api into chain related/unrelated apps #344

ygrishajev opened this issue Aug 30, 2024 · 2 comments
Assignees
Labels
P3 priority 3 feature/ enhancement

Comments

@ygrishajev
Copy link
Collaborator

Problem Statement

Our current API architecture consolidates both chain-specific features and unrelated functionalities (e.g., user management) into a single API. This creates ambiguity and complicates our deployment process, resulting in the following environments:

  1. staging - mainnet
  2. staging - sandbox
  3. production - mainnet
  4. production - sandbox

While this structure works for chain-specific logic, it introduces unnecessary complexity for non-chain-specific functionalities, such as user management.

Proposal

To resolve this, we propose splitting the current API into two distinct projects:

  • Chain-specific API: Focused on features related to the blockchain.
  • General API: Handling non-chain-specific logic like user management.

Deployment Strategy

  • General API:
    • Deploy to 2 environments (staging, production).
  • Chain-specific API:
    • Deploy to 4 environments (staging-mainnet, staging-sandbox, production-mainnet, production-sandbox).

Tasks

  • Split out the chain-specific logic into a separate app.
  • Deploy the chain-specific app to the staging environment.
  • Test the functionality of the new chain-specific app.
  • Remove the chain-specific logic from the existing API.

Benefits

This change will:

  • Reduce ambiguity in our API architecture.
  • Simplify deployments and management of non-chain-specific features.
  • Provide clearer separation of concerns, making the system more maintainable.

Additional Considerations

  • Ensure that existing deployments remain functional during the transition.
  • Plan for a smooth migration to the new architecture with minimal downtime.
@baktun14
Copy link
Collaborator

Yea, this makes sense.

@Oyase-shinobi
Copy link

Hello
Happy weekend
I would love to engage in your team and contribute in this project

@ygrishajev ygrishajev self-assigned this Sep 3, 2024
@baktun14 baktun14 added the P3 priority 3 feature/ enhancement label Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P3 priority 3 feature/ enhancement
Projects
None yet
Development

No branches or pull requests

3 participants