MODULO 5.3

๐Ÿ’พ Backends: do markdown ao Pinecone

Markdown, Obsidian, SQLite, sqlite-vec, ChromaDB, Supabase, Pinecone. Quando vale cada um โ€” com custo, setup e trade-offs claros.

6
Topicos
35
Minutos
Tecnico
Nivel
Infra
Tipo
1

๐Ÿ“„ Markdown: a base universal

Comece aqui. 80% dos usuarios nao precisam de mais.

โœ… Por que markdown ganha

Vantagens reais:

  • โ€ขZero dependencia โ€” so precisa de editor e grep.
  • โ€ขHumano legivel โ€” voce le direto no terminal.
  • โ€ขGit nativo โ€” versionamento e backup automatico.
  • โ€ขPortavel โ€” funciona em qualquer OS, qualquer editor.
  • โ€ขCusto zero โ€” nem API, nem DB, nem config.

๐Ÿ’ก Nao subestime

Muito engenheiro quer ir direto pra vetor. Markdown resolve 80% dos casos com 0% da complexidade.

2

๐ŸŒ Obsidian: duas portas

Mesmo markdown, dois acessos: humano no app, IA via CLI.

๐Ÿ“ Arquitetura two-doors

         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
         โ”‚   vault files โ”‚  (markdown .md)
         โ”‚   no disco    โ”‚
         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                 โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚                 โ”‚
        โ–ผ                 โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Obsidian    โ”‚  โ”‚  Claude Code โ”‚
โ”‚  UI, mobile, โ”‚  โ”‚  via bash    โ”‚
โ”‚  backlinks,  โ”‚  โ”‚  (grep, cat, โ”‚
โ”‚  grafo       โ”‚  โ”‚   Obsidian   โ”‚
โ”‚              โ”‚  โ”‚   CLI)       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Voce edita no Obsidian. Claude le os .md.

๐Ÿ“Š Quando vale Obsidian

  • Ja tem vault pessoal: sinergia enorme
  • Trabalha mobile: Obsidian Sync ($4/mes)
  • Gosta de grafo visual: ver conexoes
  • Publica conhecimento: Obsidian Publish
  • Nao vale se: voce nao gosta do app e so usaria por Claude
3

๐Ÿ—ƒ๏ธ SQLite + FTS5

Quando grep fica lento, SQLite e o passo natural. DB embedded, zero config.

๐Ÿ“ Schema minimo

CREATE TABLE memories (
  id INTEGER PRIMARY KEY,
  title TEXT NOT NULL,
  body TEXT NOT NULL,
  type TEXT NOT NULL,        -- fact/decision/pattern/...
  created_at TEXT NOT NULL,
  access_count INTEGER DEFAULT 0
);

-- FTS5 virtual table para busca full-text
CREATE VIRTUAL TABLE memories_fts USING fts5(
  title, body, content=memories
);

-- Trigger para manter FTS em sync
CREATE TRIGGER memories_ai AFTER INSERT ON memories BEGIN
  INSERT INTO memories_fts(rowid, title, body)
  VALUES (new.id, new.title, new.body);
END;

-- Busca: <50ms em 10k entries
SELECT id, title FROM memories_fts
WHERE memories_fts MATCH 'webhook OR idempotency'
ORDER BY rank LIMIT 5;

๐Ÿ“Š Quando migrar do markdown

  • Grep > 500ms: hora de SQLite
  • Memorias > 500: FTS5 vale a pena
  • Precisa de filtro por tipo: SQL vence grep combinado
  • Acces_count tracking: salience scoring precisa
4

๐Ÿง  sqlite-vec + fastembed

Semantica local. Sem API externa, sem custo recorrente, sem latencia de rede.

๐Ÿ“ Setup local

# Instalar dependencias (Python)
pip install sqlite-vec fastembed

# Criar index vetorial
import sqlite3
import sqlite_vec
from fastembed import TextEmbedding

db = sqlite3.connect('memory.db')
db.enable_load_extension(True)
sqlite_vec.load(db)

db.execute('''
  CREATE VIRTUAL TABLE vec_memories USING vec0(
    embedding float[384]
  )
''')

# Adicionar memoria
model = TextEmbedding()  # modelo leve, offline
emb = list(model.embed(['texto da memoria']))[0]
db.execute('INSERT INTO vec_memories VALUES (?, ?)',
           (id, emb.tolist()))

# Buscar 3 mais proximos
query_emb = list(model.embed(['pergunta']))[0]
results = db.execute('''
  SELECT rowid, distance FROM vec_memories
  WHERE embedding MATCH ?
  ORDER BY distance LIMIT 3
''', (query_emb.tolist(),)).fetchall()

๐Ÿ“Š Privacidade + performance

  • Tudo local: privacidade total
  • Offline: funciona sem rede
  • Custo: zero recorrente
  • Latencia: ~30ms embed + 10ms search
5

โ˜๏ธ Supabase, Turso, Pinecone

Cloud vale em casos especificos. Na duvida, nao e o seu.

โœ“ Cloud vale a pena

  • โœ“Time de 3+ pessoas compartilhando memoria
  • โœ“Voce troca entre desktop e mobile frequentemente
  • โœ“Ja paga Supabase/Postgres para outra coisa
  • โœ“Precisa auth e permissoes granulares

โœ— Cloud e overkill

  • โœ—Voce e solo com 1 maquina
  • โœ—Privacidade e critica (medicina, direito)
  • โœ—Budget zero
  • โœ—Ainda em fase de experimentar
6

๐Ÿ“Š Matriz de decisao

Tabela unica. Cole na sua documentacao.

๐Ÿ“ Matriz completa

| Backend       | Setup | Custo | Privacidade | Multi-dev | Semantica |
|---------------|-------|-------|-------------|-----------|-----------|
| Markdown      | 0min  | $0    | total       | git       | nao       |
| Obsidian      | 10min | $0-4  | total       | Sync      | parcial   |
| SQLite        | 30min | $0    | total       | nao       | nao       |
| sqlite-vec    | 1h    | $0    | total       | nao       | sim       |
| Supabase      | 2h    | $0-25 | cloud       | sim       | pgvector  |
| Turso         | 1h    | $0-20 | cloud       | sim       | nao       |
| Pinecone      | 2h    | $50+  | cloud       | sim       | sim       |

Regra: comece na linha 1-2. Sobe so quando medir limitacao real.

๐Ÿ’ก Migration path

Markdown โ†’ SQLite (script: scan .md, insert). SQLite โ†’ sqlite-vec (add virtual table). Sempre reversivel.

๐Ÿ“ Resumo do Modulo

โœ“
Markdown cobre 80% โ€” nao subestime a base.
โœ“
Obsidian e markdown + UI โ€” duas portas para mesmo conteudo.
โœ“
SQLite e o upgrade natural โ€” quando busca fica lenta.
โœ“
Cloud so em casos especificos โ€” time ou multi-device real.

Proximo:

5.4 โ€” Multi-sinal: o painel de juizes