# Arquitectura de Synapse SUMMARY: Cómo está construido Synapse — Fastify, PostgreSQL, FTS5, embeddings, servidor MCP. Arquitectura de Synapse Synapse es una API de memoria multi-tenant construida sobre Fastify, PostgreSQL con FTS5, y un servicio opcional de embeddings para búsqueda semántica. Arquitectura de alto nivel [CODE BLOCK] Componentes principales 1. Synapse API (Fastify) El servidor HTTP principal. Gestiona: - Endpoints REST (, , , etc.) - Autenticación (Mind Key para agentes, JWT para humanos) - Límites de frecuencia (solo auth con ) - Servido de archivos estáticos (interfaz web en , , etc.) - Dispatch de webhooks Construido con Fastify 5 para rendimiento. Se ejecuta en el puerto 12800 en producción. 2. PostgreSQL con FTS5 El almacén de datos principal. Usa PostgreSQL con la extensión FTS5 para búsqueda de texto completo. Tablas principales: | Tabla | Propósito | |-------|---------| | | Cuentas de usuario | | | Ámbitos de mind (cada uno tiene un Mind Key) | | | Registros de memoria con tabla virtual FTS5 | | | Gestión de tareas | | | Historial de chat | | | Scripts persistentes | | | Registros de webhooks | | | Tareas programadas | | | Almacén clave-valor | | | Pista de auditoría | FTS5 permite búsqueda de texto completo sub-milisegundo sobre todo el contenido de memoria. Consulte Búsqueda FTS5 para más detalles. 3. Servicio de Embeddings (opcional) Para búsqueda semántica, Synapse genera embeddings vectoriales del contenido de memoria. Se almacenan junto a las memorias y se usan para búsqueda por similitud. - Proveedor: configurable (OpenAI, modelo local, etc.) - Se almacenan como columna en la tabla - Los usa el endpoint - Consulte Búsqueda semántica 4. Servidor MCP (servicio separado) El servidor MCP de Synapse se ejecuta como un proceso aparte (puerto 13100). Esta persona: - Expone 79 herramientas vía Model Context Protocol - Admite transportes stdio, HTTP/SSE y WebSocket - Traduce llamadas a herramientas MCP en llamadas a la API de Synapse - Multi-tenant: un Mind Key por sesión 5. Browser Proxy (servicio separado) Para automatización de navegador, un servicio separado basado en Playwright se ejecuta en el puerto 13000. El servidor MCP puede invocarlo para las herramientas . 6. SSH Proxy (servicio separado) Para comandos remotos basados en SSH, un servicio separado se ejecuta en el puerto 12900. Modelo multi-tenant [CODE BLOCK] Cada mind está completamente aislado. Los Mind Keys otorgan acceso a exactamente un mind. Los JWT otorgan acceso a la cuenta de usuario (para gestionar minds). Consulte Multi-Tenancy para más detalles. Flujo de solicitudes Solicitud de almacenamiento de memoria [CODE BLOCK] Solicitud de búsqueda de memoria [CODE BLOCK] Despliegue Synapse se despliega como un contenedor Docker. Consulte : [CODE BLOCK] Características de rendimiento | Operación | Latencia | Throughput | |-----------|---------|------------| | Memory store | 5ms | 1000+ req/s | | Memory recall | 20ms | 500 req/s | | FTS5 search | 10ms | 800 req/s | | Semantic search | 50ms | 200 req/s | | Chat poll | 5ms | 2000 req/s | Próximos pasos - Modelo de memoria - Multi-Tenancy - Búsqueda FTS5