Skip to content

[HLR] bsv-wallet-redis: Zero-to-running developer experience #617

Description

@sgbett

Problem

bsv-wallet-redis (#475) will be a new gem requiring Redis (and likely Sidekiq) as external infrastructure. Like bsv-wallet-postgres before #616, the DX risk is that developers install the gem and have no clear path to a working setup. Redis + Sidekiq is even more configuration-surface than Postgres alone (Redis server, Sidekiq process, connection URLs, queue names).

Acceptance criteria

Environment configuration

  • .env.example documenting minimum required ENV vars (REDIS_URL at minimum, Sidekiq-specific vars if needed)
  • The gem reads all configuration from ENV — no hardcoded connection strings

Docker setup

  • docker-compose.yml providing Redis (and optionally a Sidekiq worker process)
  • Non-ephemeral storage — Redis data directory mounted as a volume if persistence is required (RDB/AOF)
  • If Sidekiq is included: worker process defined in compose, auto-starts with the correct queues

Documentation

  • gem/bsv-wallet-redis/README.md — complete getting-started guide:
    • Install the gem
    • Copy .env.example to .env, fill in REDIS_URL
    • docker compose up -d for Redis (+ Sidekiq if applicable)
    • Ruby snippet: create a wallet client with Redis adapter in < 10 lines
    • Run the test suite against it
  • docs/gems/bsv-wallet-redis.md — same content, integrated into project docs

Out-of-the-box experience

  • Semi-competent developer goes from gem install bsv-wallet-redis to a working Redis-backed wallet component with a few commands in under a minute
  • Sensible defaults for local development (localhost:6379, default database, no auth)
  • Production guidance (AUTH, TLS, Sentinel/Cluster) is separate from getting-started

Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgem:walletbsv-wallet companion gemproject:hlrHigh-Level Requirement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions