- Archived 13 API design iterations to docs/api-design-archive/ - Consolidated augmentation docs to docs/augmentations-archive/ - Maintained ONE definitive API doc at docs/api/README.md - Cleaned up documentation structure for 2.0 release - Preserved all historical documents for reference
9.8 KiB
9.8 KiB
🧠 The Complete Brainy Architecture Vision
🎯 The Genius: Everything is an Augmentation
🧠 BRAINY CORE
│
┌────────┴────────┐
│ Augmentations │
│ Pipeline │
└────────┬────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
Data Processing External API Exposure
Augmentations Connections Augmentations
│ │ │
NeuralImport Synapses APIServer
EntityRegistry (Notion,etc) (REST/WS)
BatchProcessing │ MCPServer
IntelligentScoring │ GraphQLServer
│ │ │
└────────────────────┴────────────────────┘
│
Storage Layer
(FS, S3, OPFS, Memory)
🔄 How It All Works Together
1. Core Pipeline
Every operation flows through the augmentation pipeline:
User Action → BrainyData Method → Augmentation Pipeline → Storage
↑
All Augmentations Execute Here
2. Augmentation Categories (All Using Same Interface!)
🧬 Data Processing (timing: 'before')
- NeuralImport - AI understands data before storage
- EntityRegistry - Deduplicates entities
- BatchProcessing - Optimizes bulk operations
🌐 External Connections (timing: 'after')
- Synapses - Sync with Notion, Salesforce, etc.
- WebSocketBroadcast - Real-time updates to clients
- TeamCoordination - Multi-agent synchronization
📡 API Exposure (timing: 'after' or separate process)
- APIServerAugmentation - REST/WebSocket/MCP server
- GraphQLAugmentation - GraphQL endpoint
- ServiceWorkerAugmentation - Browser local API
💾 Storage Backends (timing: 'replace')
- S3StorageAugmentation - Use S3 instead of local
- RedisAugmentation - Use Redis for caching
- PostgresAugmentation - Use Postgres for persistence
🛡️ Infrastructure (timing: 'around')
- WALAugmentation - Write-ahead logging
- TransactionAugmentation - ACID transactions
- CacheAugmentation - Multi-level caching
🌟 The Beautiful Simplicity
One Interface Rules All
interface BrainyAugmentation {
name: string
timing: 'before' | 'after' | 'around' | 'replace'
operations: string[]
priority: number
initialize(context): Promise<void>
execute(operation, params, next): Promise<any>
shutdown?(): Promise<void>
}
This single interface can:
- Process data with AI
- Connect to any external service
- Expose APIs (REST, WebSocket, MCP, GraphQL)
- Replace storage backends
- Add infrastructure (WAL, transactions, caching)
- Coordinate distributed systems
- Visualize data in real-time
- Literally ANYTHING
🏗️ Real-World Deployment Architecture
Scenario 1: Local Development
const brain = new BrainyData({
augmentations: [
new NeuralImportAugmentation(), // AI processing
new EntityRegistryAugmentation(), // Deduplication
new WALAugmentation() // Durability
]
})
Scenario 2: Production Server
const brain = new BrainyData({
augmentations: [
// Infrastructure
new WALAugmentation(),
new ConnectionPoolAugmentation(),
new RequestDeduplicatorAugmentation(),
// Data Processing
new NeuralImportAugmentation(),
new EntityRegistryAugmentation(),
new BatchProcessingAugmentation(),
// External Connections
new NotionSynapse({ apiKey: 'xxx' }),
new SlackSynapse({ token: 'xxx' }),
// API Exposure
new APIServerAugmentation({ port: 3000 }),
new MCPServerAugmentation({ port: 3001 }),
// Monitoring
new MetricsAugmentation(),
new LoggingAugmentation()
]
})
Scenario 3: Distributed AI Agent System
const brain = new BrainyData({
augmentations: [
// Agent Coordination
new TeamCoordinationAugmentation(),
new DistributedLockAugmentation(),
new SharedMemoryAugmentation(),
// Agent Memory
new MCPAgentMemoryAugmentation(),
new ConversationHistoryAugmentation(),
// Real-time Communication
new WebSocketBroadcastAugmentation(),
new PubSubAugmentation(),
// Visualization
new GraphVisualizationAugmentation()
]
})
🔌 How API Exposure Works
The APIServerAugmentation is special - it can run in two modes:
Mode 1: Embedded (Same Process)
brain.augmentations.register(new APIServerAugmentation())
// API server runs in same process, hooks into pipeline
Mode 2: Standalone (Separate Process)
// server.js - separate file
import { BrainyData } from 'brainy'
import { APIServerAugmentation } from 'brainy/augmentations'
const brain = new BrainyData()
const apiServer = new APIServerAugmentation()
// Can also run as standalone server connecting to remote Brainy
apiServer.connectToRemoteBrainy('ws://brainy-host:8080')
apiServer.listen(3000)
🎭 The Four Timing Modes in Practice
System Startup Sequence
1. INITIALIZE Phase
└─> All augmentations initialize (storage, connections, servers)
2. OPERATION Phase (for each operation)
├─> 'before' augmentations (NeuralImport, Validation)
├─> 'around' augmentations start (WAL, Transactions)
├─> 'replace' augmentations (if any, skip core)
├─> Core operation (or replaced operation)
├─> 'around' augmentations complete (Commit/Rollback)
└─> 'after' augmentations (Sync, Broadcast, Log)
3. SHUTDOWN Phase
└─> All augmentations cleanup (close connections, flush buffers)
🌍 Deployment Patterns
Pattern 1: Monolithic
Everything in one process:
┌─────────────────────────────┐
│ Single Node.js Process │
│ ┌───────────────────────┐ │
│ │ BrainyData Core │ │
│ ├───────────────────────┤ │
│ │ All Augmentations │ │
│ ├───────────────────────┤ │
│ │ API Server │ │
│ └───────────────────────┘ │
└─────────────────────────────┘
Pattern 2: Microservices
Distributed across services:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Brainy Core │────▶│ API Gateway │────▶│ Clients │
└──────┬───────┘ └──────────────┘ └──────────────┘
│
├──────────────┐
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Synapses │ │ AI Agents │
│ Service │ │ Service │
└──────────────┘ └──────────────┘
Pattern 3: Edge Computing
Brainy at the edge:
┌─────────────────────────────────────┐
│ CloudFlare Worker │
│ ┌───────────────────────────────┐ │
│ │ Brainy (Memory Storage) │ │
│ │ + API Server Augmentation │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
│
▼
┌───────────────┐
│ S3 Storage │
└───────────────┘
🚀 The Power of Composition
Any combination works because everything uses the same interface:
// Local AI Assistant
[NeuralImport, ChatInterface, LocalStorage]
// Production API
[WAL, S3Storage, APIServer, RateLimiting]
// Multi-Agent System
[TeamCoordination, MCPServer, GraphVisualization]
// Data Pipeline
[KafkaConsumer, NeuralImport, PostgresStorage]
// Real-time Analytics
[StreamProcessing, Clustering, WebSocketBroadcast]
🎯 Key Insights
- No Special Cases - Everything is an augmentation
- Complete Flexibility - Mix and match any combination
- Environment Agnostic - Works in browser, Node, Deno, edge
- Protocol Agnostic - REST, WebSocket, MCP, GraphQL, gRPC
- Storage Agnostic - Local, S3, Redis, Postgres, anything
- Infinitely Extensible - Just add more augmentations
🧠 The Philosophy
"Make everything an augmentation, and the system becomes infinitely flexible while remaining dead simple."
This is why Brainy can be:
- A local embedded database
- A distributed knowledge graph
- An AI agent memory system
- A real-time collaboration platform
- A data pipeline processor
- All of the above simultaneously
One interface. Infinite possibilities. That's the Brainy way. 🚀