widgettdc-api / docs /status /ENTERPRISE_UPGRADE_PROGRESS.md
Kraft102's picture
fix: sql.js Docker/Alpine compatibility layer for PatternMemory and FailureMemory
5a81b95

Enterprise Upgrade - Phase 1 Progress

βœ… Completed

Infrastructure

  • Docker Compose: Added PostgreSQL (pgvector) and Redis services with resource limits
  • PM2 Config: Created ecosystem.config.js for background process management
  • Logger: Implemented Winston logger with file rotation (apps/backend/src/utils/logger.ts)
  • Redis Event Bus: Created RedisEventBus.ts to replace in-memory EventEmitter

Dependencies Installed

  • winston (Logging)
  • ioredis (Redis client)
  • pm2 (Process manager - global)

🚧 Next Steps

1. Prisma Setup

  • Install Prisma: npm install --save-dev prisma @prisma/client
  • Create comprehensive schema in prisma/schema.prisma
  • Update .env.example with PostgreSQL and Redis URLs
  • Initialize database: npx prisma migrate dev --name init
  • Run migration script: node dist/scripts/migrate-to-postgres.js

2. Integrate RedisEventBus

  • Update apps/backend/src/mcp/EventBus.ts to use Redis in production
  • Test event persistence across server restarts

3. Database Adapters

  • Create PrismaDatabaseAdapter.ts
  • Create PgVectorStoreAdapter.ts (replaces ChromaDB)
  • Update UnifiedMemorySystem to use Prisma adapter
  • Update all code references from ChromaDB to PgVector

🎯 How to Start Services

# 1. Start Docker services in background
docker-compose up -d

# 2. Build backend
cd apps/backend && npm run build

# 3. Start backend with PM2
pm2 start ecosystem.config.js

# 4. Check status
pm2 status
docker ps

πŸ“Š Resource Usage Target

  • Postgres: Max 512MB RAM, 0.5 CPU
  • Redis: Max 256MB RAM, 0.25 CPU
  • Backend (PM2): Max 1GB RAM (autorestart)

Status: Foundation laid. Ready for Prisma integration.