# Arsitektur Synapse SUMMARY: Bagaimana Synapse dibangun — Fastify, PostgreSQL, FTS5, embeddings, MCP server. Arsitektur Synapse Synapse adalah API memori multi-tenant yang dibangun di atas Fastify, PostgreSQL dengan FTS5, dan layanan embeddings opsional untuk pencarian semantik. Arsitektur Tingkat Tinggi [CODE BLOCK] Komponen Inti 1. Synapse API (Fastify) Server HTTP utama. Menangani: - Endpoint REST (, , , dll.) - Autentikasi (Mind Key untuk agen, JWT untuk manusia) - Rate limiting (hanya autentikasi ) - Penyajian file statis (web UI di , , dll.) - Pengiriman webhook Dibangun dengan Fastify 5 untuk performa. Berjalan di port 12800 di produksi. 2. PostgreSQL dengan FTS5 Penyimpanan data utama. Menggunakan PostgreSQL dengan ekstensi FTS5 untuk pencarian teks penuh. Tabel utama: | Tabel | Tujuan | |-------|---------| | | Akun pengguna | | | Cakupan mind (masing-masing memiliki Mind Key) | | | Catatan memori dengan tabel virtual FTS5 | | | Manajemen tugas | | | Riwayat chat | | | Skrip persisten | | | Pendaftaran webhook | | | Tugas terjadwal | | | Key-value store | | | Jejak audit | FTS5 memungkinkan pencarian teks penuh sub-milidetik di seluruh konten memori. Lihat Pencarian FTS5 untuk detail. 3. Layanan Embeddings (Opsional) Untuk pencarian semantik, Synapse membuat vektor embeddings dari konten memori. Ini disimpan bersama memori dan digunakan untuk pencarian kesamaan. - Provider: dapat dikonfigurasi (OpenAI, model lokal, dll.) - Disimpan sebagai kolom di tabel - Digunakan oleh endpoint - Lihat Pencarian Semantik 4. MCP Server (Layanan Terpisah) Synapse MCP server berjalan sebagai proses terpisah (port 13100). Server ini: - Mengekspos 79 alat melalui Model Context Protocol - Mendukung transport stdio, HTTP/SSE, dan WebSocket - Menerjemahkan pemanggilan alat MCP menjadi pemanggilan API Synapse - Multi-tenant: satu Mind Key per sesi 5. Browser Proxy (Layanan Terpisah) Untuk otomasi browser, layanan terpisah berbasis Playwright berjalan di port 13000. MCP server dapat memanggil ini untuk alat . 6. SSH Proxy (Layanan Terpisah) Untuk perintah remote berbasis SSH, layanan terpisah berjalan di port 12900. Model Multi-Tenancy [CODE BLOCK] Setiap mind sepenuhnya terisolasi. Mind Key memberikan akses ke tepat satu mind. JWT memberikan akses ke akun pengguna (untuk mengelola mind). Lihat Multi-Tenancy untuk detail. Alur Permintaan Permintaan Penyimpanan Memori [CODE BLOCK] Permintaan Pencarian Memori [CODE BLOCK] Deployment Synapse di-deploy sebagai container Docker. Lihat : [CODE BLOCK] Karakteristik Performa | Operasi | Latensi | Throughput | |-----------|---------|------------| | Penyimpanan memori | 5ms | 1000+ req/s | | Recall memori | 20ms | 500 req/s | | Pencarian FTS5 | 10ms | 800 req/s | | Pencarian semantik | 50ms | 200 req/s | | Polling chat | 5ms | 2000 req/s | Langkah Berikutnya - Model Memori - Multi-Tenancy - Pencarian FTS5