Redis Streams Agent for Gluesync: Target Integration
Core principles
This agent is a target only. Its agent name is Redis Streams, its agent tag is redis-streams, and its type is event streaming (RedisStreamsTargetAgentService). It is registered only as a target bootstrapper (PluginEntrypoint).
Every snapshot row and every CDC change the source hands over is appended with XADD. The agent never removes an entry from a stream. Insert, update and delete each become one stream entry; truncate and the pre-snapshot deletion become one marker entry, or nothing when marker events are turned off. See Target Redis Streams for the stream key, the entry fields and the connection settings.
The client is Lettuce, on one connection. Standalone when additionalHosts is empty; cluster when it is not. Writes are pipelined XADD commands on that connection (RedisStreamsWriter).
The target entity type this agent implements is NoSqlEntity (RedisStreamsNodeInformationDao.implementedEntityTypes). Scope is the optional key namespace (schema, display name Key namespace (optional)) and the collection is the stream (table, display name Stream). There is no catalog to browse and no DDL: a stream is created by the first XADD (RedisStreamsInformationSchemaDao, RedisStreamsSchemaDao). Column discovery returns no columns; the columns are whatever the source sends (RedisStreamsTargetAgentService.onGetColumnsForTables).
Platform supported features
| Feature | Support | Notes |
|---|---|---|
Target role |
✅ |
Appends one |
Source role |
❌ |
|
Snapshots |
❌ |
Does not snapshot Redis. Source snapshot rows are still appended, with |
CDC |
❌ |
Does not read a Redis stream. Source CDC changes are appended. |
CDC type |
N/A |
Target-only connector. |
Bulk load |
❌ |
|
Database pooling |
❌ |
|
Source persisted internal cache |
N/A |
Target-only connector. |
Target persisted internal cache |
N/A |
Entries are written straight to Redis. A failed batch can leave entries already appended ( |
Driver / connector |
Lettuce |
Standalone or cluster. Commands issued by this agent are |
Chains |
N/A |
Target-only connector. |
Truncate operation support (reading) |
N/A |
Target-only connector. |
Truncate operation support (writing) |
✅ |
Appends one |
Security
Authentication is skipped when disableAuth is true. Otherwise a non-blank username is sent as a Redis ACL user together with password (withAuthentication); a blank username with a non-empty password uses password authentication (withPassword).
TLS is off unless enableTls is true. With TLS, trustServerCertificate true sets peer verification to NONE; false sets it to FULL and, when a certificate path or an uploaded store is present, loads that store with certificatePassword. With no store, the JVM default trust store is used (RedisStreamsProprietaryDatabaseManager).
Supported version
The agent is tested from Redis 7.4, Community Edition and Enterprise Edition. It does not enforce a minimum version at runtime: after connect it reads the redis_version line from INFO server (RedisStreamsProprietaryDatabaseManager.getDatabaseVersion) and reports it. There is no SQL version statement.
XADD requires a server that implements streams. MINID trimming and ACL usernames are sent only when those settings are used; the agent does not probe for them.