Skip to content

Add Redis cache layer with TTL strategies #36

@Otaiki1

Description

@Otaiki1

Context

Frequently read data (active raffle list, raffle detail, leaderboard) should be cached in Redis to reduce DB load and latency. ARCHITECTURE defines TTL and invalidation per data type.

Goal

  • Implement CacheService that wraps Redis (e.g. ioredis or NestJS cache module).
  • Provide get/set with TTL for: active raffles (30s), raffle detail (10s), leaderboard (60s), user profile (30s), platform stats (5min).
  • Invalidate on relevant events (e.g. on RaffleCreated invalidate active list; on RaffleFinalized invalidate leaderboard).

Contributor guide

  1. Directory: indexer/
  2. Add src/cache/cache.service.ts and cache.module.ts. Use key pattern e.g. raffle:active, raffle:{id}, leaderboard, user:{address}, stats:platform.
  3. Wire invalidation in processors (after DB write) or in API layer when writing.
  4. Document TTL and invalidation in code or README; add Redis to docker-compose if present.

References

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions