feat(episode): TRAZA_la-lnea-divisoria-dos-preguntas-deciden_S20260618.R4_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting Summary: EPISODIO 4 — MNEMO Pipeline: La línea divisoria: dos preguntas deciden si una es
This commit is contained in:
parent
307a15192f
commit
c81c5cc3a0
1 changed files with 37 additions and 0 deletions
|
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
episode_id: "ab9f9358-8005-496e-a489-5af76d7c04c8"
|
||||
puente_flat: "TRAZA_la-lnea-divisoria-dos-preguntas-deciden_S20260618.R4_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||
session_code: "S20260618.VERIFY_FIRST_PASSPORT_FIX"
|
||||
acto_dialogico: "informar"
|
||||
actor_flujo: "multi_actor"
|
||||
criticidad_aegis: "low"
|
||||
skill_dominante: "NONE"
|
||||
fase_proyecto: "operations"
|
||||
tipo_semantico: "troubleshooting"
|
||||
summary_one_line: "EPISODIO 4 — MNEMO Pipeline: La línea divisoria: dos preguntas deciden si una escritura v"
|
||||
source_type: "claude_code"
|
||||
trust_boundary: "internal"
|
||||
created_at: "2026-06-18T21:55:49.099366+00:00"
|
||||
relectura_tagged: false
|
||||
forgejo_commit_sha: "pending"
|
||||
---
|
||||
|
||||
Confirmado en el código, John — y la respuesta es: **sí, es diferente A PROPÓSITO, y la razón es buena.** No es accidente. El dispatcher mismo cita su diseño: *"Design: outbox-pattern-design.md §3.2"*. Es un patrón de ingeniería con nombre — el **Transactional Outbox**. Te explico por qué, con lo que acabo de leer.
|
||||
|
||||
## La línea divisoria: dos preguntas deciden si una escritura va inline o por cola
|
||||
|
||||
| Criterio | Qdrant · PostgreSQL · Neo4j (inline) | Forgejo · Nextcloud (outbox) |
|
||||
|---|---|---|
|
||||
| **¿El retrieval lo lee?** | **SÍ** — son la fuente del retrieval | **NO** — son archivo/respaldo |
|
||||
| **¿Qué operación es escribir?** | `upsert` local en DB (127.0.0.1 / `docker exec`), milisegundos, idempotente | Forgejo = **git commit + push** (red, **rate-limit 1 push / 5 s**) · Nextcloud = **WebDAV PUT** + crear directorios (red) |
|
||||
| **¿Qué tan frágil?** | Local, transaccional, confiable | Remoto: auth, red, disco, conflictos de merge |
|
||||
| **Consistencia requerida** | Inmediata (corrección del retrieval) | Eventual (es respaldo, puede ir atrasado) |
|
||||
|
||||
**Evidencia del código (verificada ahora):**
|
||||
- `forgejo_worker.py`: *"commitea episodios al repo ember-memory en Forgejo via git"* + `PUSH_RATE_LIMIT_SECONDS = 5`.
|
||||
- `nextcloud_worker.py`: *"renderiza episodios como Markdown en Nextcloud via WebDAV"* → `PUT` a `/EMBER/episodes/{año}/W{semana}/{puente_flat}.md`.
|
||||
- `crisol_run.py`: solo F3 (Qdrant) + F5 (PostgreSQL + Neo4j). Nada más.
|
||||
|
||||
## Por qué NO conviene "que escriba los 2 de igual manera inline"
|
||||
|
||||
Tu instinto es razonable ("ya hace 3, que haga 5"), pero meter Forgejo+Nextcloud inline **acoplaría el núcleo a servicios lentos y remotos**:
|
||||
Loading…
Reference in a new issue