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

Port kvsd #144

Open
1 of 5 tasks
ymgyt opened this issue Sep 3, 2024 · 0 comments
Open
1 of 5 tasks

Port kvsd #144

ymgyt opened this issue Sep 3, 2024 · 0 comments
Assignees
Labels
area/kvsd synd_kvsd crate kind/feature New feature or request

Comments

@ymgyt
Copy link
Owner

ymgyt commented Sep 3, 2024

Goal

Manage kvsd within the syndicationd project.

Motivation

One of the goals of this project is to provide users with a self-hostable feed service.
To achieve this, the following aspects are necessary:

  • Tools and echanisms for data backup and resoration
  • Observability

Tools and Mechanisms for Data Backup and Restoration

We want to provide these tools and mechanisms within the same release cycle as syndicationd. While it could be managed in a separate repository, having it in the same repository reduces management costs (CI, dependencies management, release cycle).

Observability

By implementing consistent OpenTelemetry signals across synd-api and kvsd, we can offer complete observability.

Issues to Resolve During the Port

The current kvsd has the follwing issues:

  • kvsd and CLI are in the same binary.
  • The kvs-client feature cannot be used independently (it also depends on kvsd).
  • No performance tests are avaialble.
  • OpenTelemetry is not instrumented.

Therefore, during the port, we plan to split kvsd into the following packages

  • synd_kvsd: Implementation of kvsd
  • synd_kvs_client: Implementation of the kvs client, which will be used by synd_api
  • synd_kvsctl: CLI for kvs
  • synd_kvsadm: Admin tool for kvsd handling tasks like backup

Tasks

  • convert config file format from yaml to toml
  • use nom to parse message
  • instrument opentelemetry
    • instrument traces
    • instrument metrics
@ymgyt ymgyt added kind/feature New feature or request area/kvsd synd_kvsd crate labels Sep 3, 2024
@ymgyt ymgyt self-assigned this Sep 3, 2024
@github-project-automation github-project-automation bot moved this to Backlog in syndicationd Sep 5, 2024
@ymgyt ymgyt moved this from Backlog to In progress in syndicationd Sep 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kvsd synd_kvsd crate kind/feature New feature or request
Projects
Status: In progress
Development

No branches or pull requests

1 participant