Skip to content

[IDEA] Evaluate Go/Rust rewrite only if performance becomes a real bottleneck #116

@luongnv89

Description

@luongnv89

Description

Consider whether agent-skill-manager should eventually be rebuilt (fully or partially) in a more performance-oriented language such as Go or Rust.

Important Constraint

This is not a current priority.

For now, ASM performance is acceptable and the focus should remain on product direction, shipping, and higher-leverage features.

This should only be revisited if we begin to hit real performance bottlenecks that justify the complexity of a rewrite.

Why Keep This Issue

The idea is worth capturing because a rewrite could eventually become relevant if ASM grows into:

  • much larger catalogs / indexes
  • heavier local databases / sync pipelines
  • more complex install/update resolution
  • benchmark/evaluation workloads
  • higher-performance CLI and backend expectations

Questions for a Future Evaluation

If performance becomes a problem later, evaluate:

  • what exactly is slow?
  • is the bottleneck CPU, I/O, startup time, memory, or dependency/runtime overhead?
  • can the hot paths be optimized without a rewrite?
  • would a partial rewrite be enough?
  • which language fits better: Go for distribution/CLI ergonomics, or Rust for tighter control/performance?

Acceptance Criteria for Reopening This Idea

Only take this seriously if:

  • there is measurable performance pain
  • profiling identifies real bottlenecks
  • targeted optimization is not enough
  • the rewrite cost is justified by roadmap needs

Current Recommendation

Do not pursue now.

Focus on:

  • product scope
  • discovery/indexing
  • bundles/export/import
  • routing evaluation / benchmarks
  • launch / adoption

Revisit only when performance becomes a real blocker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions