You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This document provides a quick reference for all systems in the Synapse Framework. For detailed guides, see individual system documentation.
System Reference Table
System
Purpose
Key Components
Use When
Nervous
Core reactive framework
NeuralNode, Connection, Circuit
Always (foundation)
Circulatory
Message routing
Heart, BloodCell, Patterns
Event-driven architecture
Immune
Security & validation
TCell, BCell, Macrophage
Authentication, authorization
Skeletal
Schema validation
Bone, Validators
Type checking, API contracts
Muscular
Data processing
Muscle, MuscleGroup, MuscleMemory
Business logic, pipelines
Respiratory
Networking & resilience
Lung, Diaphragm, Adapters
HTTP clients, external APIs
Glial
State & performance
Astrocyte, Oligodendrocyte
Caching, optimization
UI
Visual components
VisualNeuron, SensoryNeuron
User interfaces
Visualization
Charts & graphs
LineChart, BarChart, PieChart
Data visualization
Theater
Testing & development
Stage, Laboratory, Amphitheater
Component testing, dev tools
Quick Start by Use Case
Building a REST API
import{// CoreCorticalNeuron,// ImmuneTCell,BCell,Macrophage,// SkeletalBone,// RespiratoryRouter,Diaphragm,// GlialAstrocyte,}from'@synapse-framework/core';// 1. Define schemaconstUserSchema=newBone('User',z.object({email: z.string().email(),name: z.string(),}));// 2. Set up securityconstauth=newTCell({secretKey: process.env.SECRET});constauthz=newBCell({});constsanitizer=newMacrophage({xss: true});// 3. Create serviceclassUserServiceextendsCorticalNeuron{privatecache=newAstrocyte({id: 'cache'});asyncgetUser(id: string){// Check cacheconstcached=this.cache.get(`user:${id}`);if(cached)returncached;// Fetch from DBconstuser=awaitdb.users.findById(id);// Cache resultthis.cache.set(`user:${id}`,user,60000);returnuser;}}// 4. Set up routesconstrouter=newRouter({id: 'api',basePath: '/api',});router.get('/users/:id',async(req)=>{// Authenticateconstsession=awaitauth.verifyToken(req.headers.authorization);// Authorizeawaitauthz.authorize({userId: session.userId,resource: 'users',action: 'read',});// Processconstuser=awaituserService.getUser(req.params.id);return{data: user};});
Event-Driven Microservices
import{Heart,PublishSubscribe,EventSourcing,CorticalNeuron,}from'@synapse-framework/core';// 1. Set up message brokerconstheart=newHeart({persistence: true});constpubsub=newPublishSubscribe(heart);constevents=newEventSourcing(heart);// 2. User ServiceclassUserServiceextendsCorticalNeuron{asynccreateUser(data: CreateUserInput){constuser=awaitdb.users.create(data);// Store eventawaitevents.append(user.id,'UserCreated',user);// Publish eventawaitpubsub.publish('user.created',user);returnuser;}}// 3. Email Service (separate microservice)pubsub.subscribe('user.created',async(user)=>{awaitsendWelcomeEmail(user.email);});// 4. Analytics Service (separate microservice)pubsub.subscribe('user.created',async(user)=>{awaitanalytics.track('user_registered',{userId: user.id});});
import{Heart,PublishSubscribe,WebSocketAdapter,Astrocyte,}from'@synapse-framework/core';// 1. Set up messagingconstheart=newHeart();constpubsub=newPublishSubscribe(heart);// 2. Set up WebSocketconstws=newWebSocketAdapter({port: 3000,path: '/ws',});// 3. Set up presence trackingconstpresence=newAstrocyte({id: 'presence',defaultTTL: 30000,// 30s timeout});// 4. Handle connectionsws.onConnection((socket)=>{constuserId=socket.userId;// Track presencepresence.set(`user:${userId}`,{online: true,lastSeen: Date.now(),});// Subscribe to user-specific eventsconstunsub=pubsub.subscribe(`user.${userId}.*`,(event)=>{socket.send(JSON.stringify(event));});// Handle disconnectsocket.on('disconnect',()=>{presence.delete(`user:${userId}`);unsub();});});// 5. Broadcast to all usersasyncfunctionbroadcastMessage(message: string){constonlineUsers=presence.getKeysByPattern('user:*');onlineUsers.forEach((key)=>{constuserId=key.replace('user:','');pubsub.publish(`user.${userId}.message`,{ message });});}
System Integration Patterns
Pattern 1: Full Stack Application
HTTP Request
↓
[Router] ← Respiratory System
↓
[Macrophage] ← Immune System (Sanitize)
↓
[Bone] ← Skeletal System (Validate)
↓
[TCell] ← Immune System (Authenticate)
↓
[BCell] ← Immune System (Authorize)
↓
[CorticalNeuron] ← Nervous System (Business Logic)
↓
[Muscle] ← Muscular System (Transform)
↓
[Astrocyte] ← Glial System (Cache)
↓
[Heart] ← Circulatory System (Events)
↓
HTTP Response
Pattern 2: Event-Driven Architecture
Event Source
↓
[Heart] ← Receive Event
↓
├→ [Service A] ← Process independently
├→ [Service B] ← Process independently
└→ [Service C] ← Process independently
↓
[EventSourcing] ← Store events
↓
[Astrocyte] ← Update projections
Pattern 3: Data Pipeline
Raw Data
↓
[Muscle] ← Extract
↓
[Muscle] ← Transform
↓
[Muscle] ← Validate
↓
[MuscleMemory] ← Cache results
↓
[Heart] ← Publish completion
↓
Clean Data