from __future__ import annotations from redis import Redis class IdempotencyStore: def __init__(self, redis_client: Redis, set_key: str = "scenarist:idempotency:processed") -> None: self.redis = redis_client self.set_key = set_key def is_processed(self, key: str) -> bool: return self.redis.sismember(self.set_key, key) def mark_processed(self, key: str) -> None: self.redis.sadd(self.set_key, key)