Skip to content

Add a Redis connector (source + sink) #799

@Leomrlin

Description

@Leomrlin

What & why

The project already has a Redis store (a state backend) but no Redis
connector (treating Redis as a data source/sink). They serve different roles:
the store backs the engine's internal state, while a connector backs DSL table
reads/writes. Redis as a dimension table or result cache is very common.

项目已有 Redis store(状态后端),但没有 Redis connector(把 Redis 当数据源/汇)。
两者职责不同:store 服务于引擎内部状态,connector 服务于 DSL 建表读写。Redis 作维表/结果缓存很常见。

The task

Create geaflow-dsl-connector-redis: the sink supports writing string/hash, the
source supports scanning by key pattern.

新建 geaflow-dsl-connector-redis,sink 支持写 string/hash,source 支持按 key 模式扫描读取。

Where to look / 怎么做

  1. References: the minimal geaflow-dsl-connector-console (sink only) and the
    connection-managing geaflow-dsl-connector-elasticsearch.
  2. Reuse the Redis client already in the project — check which client
    geaflow-store-redis uses and stick with it to avoid pulling in a new dependency.
  3. Implement connector / source / sink + SPI registration + pom + docs + tests.

Done when

  • Both source and sink work, supporting string and hash (at least one, with explanation)
  • Reuses the existing Redis client dependency, no duplicate dependency introduced
  • Testcontainers integration test
  • CN + EN docs + examples
  • checkstyle / RAT pass

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions