# Synapse Architecture SUMMARY: วิธีที่ Synapse ถูกสร้างขึ้น — Fastify, PostgreSQL, FTS5, embeddings, MCP server Synapse Architecture Synapse เป็น multi-tenant memory API ที่สร้างบน Fastify, PostgreSQL พร้อม FTS5 และ embeddings service ที่เป็นตัวเลือกสำหรับ semantic search Architecture ระดับสูง [CODE BLOCK] Core Components 1. Synapse API (Fastify) HTTP server หลัก จัดการ: - REST endpoint (, , , etc.) - Authentication (Mind Key สำหรับ agent, JWT สำหรับ human) - Rate limiting (เฉพาะ auth ผ่าน ) - Static file serving (web UI ที่ , , etc.) - Webhook dispatch สร้างด้วย Fastify 5 เพื่อประสิทธิภาพ รันบน port 12800 ใน production 2. PostgreSQL with FTS5 data store หลัก ใช้ PostgreSQL พร้อม FTS5 extension สำหรับ full-text search ตารางหลัก: | ตาราง | วัตถุประสงค์ | |-------|---------| | | บัญชีผู้ใช้ | | | Mind scope (แต่ละอันมี Mind Key) | | | Memory record พร้อม FTS5 virtual table | | | การจัดการ task | | | ประวัติแช็ต | | | Script แบบถาวร | | | การลงทะเบียน webhook | | | Task ที่ตั้งเวลาไว้ | | | Key-value store | | | Audit trail | FTS5 เปิดใช้งาน full-text search ในระดับ sub-millisecond ทั่วเนื้อหา memory ทั้งหมด ดูรายละเอียดที่ FTS5 Search 3. Embeddings Service (Optional) สำหรับ semantic search Synapse สร้าง vector embeddings ของเนื้อหา memory ซึ่งเก็บไว้กับ memory และใช้สำหรับ similarity search - Provider: กำหนดค่าได้ (OpenAI, local model, etc.) - เก็บเป็น column ในตาราง - ใช้โดย endpoint - ดู Semantic Search 4. MCP Server (Service แยกต่างหาก) Synapse MCP server รันเป็น process แยกต่างหาก (port 13100) ทำหน้าที่: - เปิดเผย 79 tool ผ่าน Model Context Protocol - รองรับ stdio, HTTP/SSE และ WebSocket transport - แปล MCP tool call เป็น Synapse API call - Multi-tenant: หนึ่ง Mind Key ต่อ session 5. Browser Proxy (Service แยกต่างหาก) สำหรับ browser automation service แยกต่างหากที่ใช้ Playwright รันบน port 13000 MCP server สามารถเรียกสิ่งนี้สำหรับ tool 6. SSH Proxy (Service แยกต่างหาก) สำหรับคำสั่งระยะไกลผ่าน SSH service แยกต่างหากรันบน port 12900 โมเดล Multi-Tenancy [CODE BLOCK] แต่ละ mind ถูกแยกอย่างสมบูรณ์ Mind Key ให้สิทธิ์เข้าถึง mind หนึ่งเท่านั้น JWT ให้สิทธิ์เข้าถึงบัญชีผู้ใช้ (สำหรับจัดการ mind) ดูรายละเอียดที่ Multi-Tenancy การไหลของ Request Request เก็บ Memory [CODE BLOCK] Request ค้นหา Memory [CODE BLOCK] Deployment Synapse deploy เป็น Docker container ดู : [CODE BLOCK] คุณลักษณะด้านประสิทธิภาพ | การดำเนินการ | Latency | 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 | ขั้นตอนถัดไป - Memory Model - Multi-Tenancy - FTS5 Search