SEZ9 commented on issue #11304:
URL: https://github.com/apache/seatunnel/issues/11304#issuecomment-5179061270

   @DanielLeens Thanks for the structural feedback — narrowing to an MVP is the 
right call. I've since done a deeper survey of the agent-memory ecosystem 
(Mem0/Zep/Letta/LangMem architectures, cloud memory services, and what existing 
ETL tools actually cover), and this comment proposes a phased plan that follows 
your four-point reduction, answering the five design questions along the way.
   
   ## Ecosystem facts that shape the choice
   
   - **No open-source ETL tool has a dedicated connector for any agent-memory 
API today** (Mem0/Zep/Letta). Mem0's 25+ integrations all target agent 
frameworks (LangChain, CrewAI, ...), not data-integration platforms. Airbyte's 
"Agent Connectors" are explicitly positioned as lightweight API clients, "not 
designed for data replication". The lifecycle gap in the issue description is 
real and unclaimed.
   - Mem0 is the most active open-source memory engine (~59k stars), 
self-hostable as three containers (FastAPI + pgvector + Neo4j) with a stable 
REST API — which matters for us because it makes deterministic e2e testing with 
testcontainers practical.
   - Memory frameworks handle their own real-time conversational ingestion 
(`add()` during chat). The unserved need is **bulk/continuous integration with 
enterprise systems**: hydration from CRM/OLTP/warehouse, CDC-driven freshness, 
deletion propagation, archival export. That's a data-movement problem, not an 
agent-runtime problem — squarely our side of the boundary you drew.
   
   ## Phase 1 MVP (following the four-point reduction)
   
   | Your question | MVP answer |
   |---|---|
   | Which backend first | **Mem0**, self-hosted REST API (Platform API is a 
compatible superset) |
   | Which direction | **source → memory only** (sink). Cold-start hydration is 
the most universal first need, and a pure sink introduces no new abstractions |
   | Which operations | **upsert + delete**, mapped to Mem0's `add`/`delete` 
with explicit `user_id` / `agent_id` / `run_id` scoping options. Upsert covers 
hydration and CDC freshness; delete lays the foundation for compliance 
propagation later |
   | Validation plan | e2e tests spinning the Mem0 stack via testcontainers; 
docs (en/zh); two runnable examples — batch hydration (JDBC → Mem0) and 
freshness (MySQL-CDC → Mem0 upsert/delete) |
   
   **On the remaining design questions:**
   
   - **Reusable contract vs connector-specific**: Phase 1 deliberately adds 
*no* shared "memory abstraction" to SeaTunnel core. `connector-mem0` is a plain 
sink built on `connector-http-base` (the same foundation as the 12+ existing 
HTTP-family connectors). Whether a `MemorySink` contract is worth extracting is 
a question we should answer *after* a second backend exists — one instance 
doesn't justify an abstraction.
   - **Compatibility impact**: none. No engine changes, no connector-API 
changes, standard OptionRule config only.
   - **Dependencies/licensing**: pure REST over the existing HTTP client — no 
memory-backend SDK dependency at all in phase 1.
   
   One thing worth highlighting: the transform side needs **zero new work**. 
SeaTunnel's existing LLM transform (summarization/fact extraction) and 
embedding transform already cover the encode-and-summarize stages of a memory 
pipeline, so the MVP demo can show a complete `CRM conversations → LLM fact 
extraction → embedding → Mem0` flow using only shipped components plus the new 
sink.
   
   ## Where this goes after the MVP (direction, not commitment)
   
   - **Phase 2 — bidirectional + compliance**: Mem0 *source* for memory → 
lakehouse archival/analytics (pairs directly with existing Iceberg/Paimon 
sinks); a delete-propagation pattern (CDC deletes → memory scope deletion with 
an audit trail) targeting GDPR/RTBF — the hardest requirement for 
finance/healthcare adopters and the most differentiated capability in this 
space. Evaluation of a second backend (Zep/Graphiti or a cloud memory API) 
happens here, and only then the shared-contract discussion.
   - **Phase 3 — convergence with the AI CLI roadmap (#11616)**: memory 
pipelines as a natural-language scenario ("hydrate Mem0 from our CRM, scoped by 
user_id"), and memory-pipeline tasks added to the CLI accuracy benchmark so 
generation quality for this connector family is measured, not assumed.
   
   These later phases stay out of scope for the phase-1 design; they're listed 
so the MVP's operation choice (upsert **+ delete**) is understood as deliberate 
groundwork.
   
   If this reduction looks right, I'll write up the phase-1 design as a proper 
STIP-style proposal (config surface, error semantics, retry/idempotency 
behavior, e2e matrix) as a sub-issue for review before any code.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to