Package Diagram
Overview
Synkro is organized as a monorepo with five packages. @synkro/core is the foundation — every other package depends on it as a peer dependency.
Dependency graph
graph TD CORE["@synkro/core"] UI["@synkro/ui"] NESTJS["@synkro/nestjs"] NEXT["@synkro/next"] AGENTS["@synkro/agents"]
UI -->|peer| CORE NESTJS -->|peer| CORE AGENTS -->|peer| CORE NEXT -->|peer| CORE NEXT -->|peer| UIPackage roles
| Package | Version | Purpose |
|---|---|---|
@synkro/core | 0.19.0 | Event engine, workflow runner, state machine, transports (in-memory and Redis) |
@synkro/ui | 0.2.4 | Web dashboard for visualizing events, workflows, and metrics |
@synkro/nestjs | 0.5.3 | NestJS module with decorators, DI, and async configuration |
@synkro/next | 0.2.3 | Next.js integration with route handlers and serverless support |
@synkro/agents | 0.3.1 | AI agent orchestration with tools, memory, and multi-agent delegation |
Why peer dependencies?
All integration packages declare @synkro/core as a peer dependency rather than a direct dependency. This design gives you three benefits:
-
Single instance — Your application always has exactly one copy of
@synkro/corein the dependency tree. There is no risk of version conflicts or duplicate state. -
Install only what you need — If you only use NestJS, install
@synkro/coreand@synkro/nestjs. The other packages are not pulled in. -
Version control — You decide which version of core to use. Integration packages specify a compatible range (e.g.,
@synkro/core ^0.15.0) so you can upgrade core independently.
The @synkro/next special case
@synkro/next has peer dependencies on both @synkro/core and @synkro/ui, since it serves the dashboard through Next.js route handlers. When using this package, install all three:
npm install @synkro/core @synkro/ui @synkro/nextMinimal install examples
Standalone Node.js with dashboard:
npm install @synkro/core @synkro/uiNestJS application:
npm install @synkro/core @synkro/nestjsNext.js application with dashboard:
npm install @synkro/core @synkro/ui @synkro/nextAI agent orchestration:
npm install @synkro/core @synkro/agents