1010
1111- [ Current State Summary] ( #current-state-summary )
1212- [ Codebase Metrics] ( #codebase-metrics )
13+ - [ Package Naming Convention] ( #package-naming-convention )
1314- [ Phase 1: Protocol Specification (✅ Complete)] ( #phase-1-protocol-specification--complete )
1415- [ Phase 2: Core Runtime (✅ Complete)] ( #phase-2-core-runtime--complete )
1516- [ Phase 3: Data Layer (🟡 Mostly Complete)] ( #phase-3-data-layer--mostly-complete )
@@ -84,6 +85,42 @@ These are the backbone of ObjectStack's enterprise capabilities.
8485
8586---
8687
88+ ## Package Naming Convention
89+
90+ > ** Adopted:** 2026-02-15
91+ > ** Scope:** All new packages from v3.1 onward; existing ` plugin-auth ` will migrate to ` service-auth ` in v4.0.
92+
93+ To clearly distinguish ** core platform services** from ** optional extensions** , all ObjectStack packages
94+ follow a strict naming convention:
95+
96+ | Prefix | Purpose | Characteristics | Examples |
97+ | :---| :---| :---| :---|
98+ | ` service-* ` | ** Core service implementations** | Implements an ` I*Service ` contract; provides platform infrastructure; typically required for production | ` service-auth ` , ` service-cache ` , ` service-queue ` |
99+ | ` plugin-* ` | ** Optional extensions** | Adds optional functionality; development tools, testing utilities, or domain-specific features; not required for production | ` plugin-dev ` , ` plugin-msw ` , ` plugin-bi ` |
100+ | ` driver-* ` | ** Data drivers** | Implements ` IDataDriver ` for a specific database | ` driver-memory ` , ` driver-postgres ` |
101+ | ` adapter / framework name ` | ** Framework adapters** | Integrates ObjectStack with a web framework | ` nextjs ` , ` nestjs ` , ` hono ` , ` express ` |
102+
103+ ### Migration from ` plugin-* ` to ` service-* `
104+
105+ The following renames are planned for packages that implement core service contracts:
106+
107+ | Current Name (v3.x) | New Name (v4.0) | Reason |
108+ | :---| :---| :---|
109+ | ` @objectstack/plugin-auth ` | ` @objectstack/service-auth ` | Implements ` IAuthService ` contract |
110+ | ` @objectstack/plugin-cache ` (not yet published) | ` @objectstack/service-cache ` | Implements ` ICacheService ` contract |
111+ | ` @objectstack/plugin-queue ` (not yet published) | ` @objectstack/service-queue ` | Implements ` IQueueService ` contract |
112+ | ` @objectstack/plugin-dev ` | ` @objectstack/plugin-dev ` | ✅ Keep — optional developer tooling |
113+ | ` @objectstack/plugin-msw ` | ` @objectstack/plugin-msw ` | ✅ Keep — optional test mocking |
114+ | ` @objectstack/plugin-bi ` | ` @objectstack/plugin-bi ` | ✅ Keep — optional BI extension |
115+ | ` @objectstack/plugin-hono-server ` | ` @objectstack/service-http ` | Implements ` IHttpServer ` contract |
116+ | ` @objectstack/plugin-security ` | ` @objectstack/service-security ` | Implements security enforcement |
117+
118+ > ** Note:** During v3.x, new service implementations will be published directly under ` service-* ` naming.
119+ > The existing ` plugin-auth ` package will be preserved with a deprecation notice and re-export shim
120+ > until v4.0 removes the old name.
121+
122+ ---
123+
87124## Phase 1: Protocol Specification (✅ Complete)
88125
89126> ** Goal:** Define every schema, type, and contract as a Zod-first source of truth.
@@ -159,64 +196,65 @@ These are the backbone of ObjectStack's enterprise capabilities.
159196
160197## Phase 4: Service Implementations (🔴 In Progress)
161198
162- > ** Goal:** Implement the remaining 19 service contracts as production-ready plugins.
199+ > ** Goal:** Implement the remaining 19 service contracts as production-ready packages.
200+ > ** Naming:** All contract implementations use ` service-* ` prefix (see [ Package Naming Convention] ( #package-naming-convention ) ).
163201
164202### Priority 1 — Essential Services
165203
166- | Contract | Priority | Notes |
167- | :---| :---:| :---|
168- | ` ICacheService ` | ** P0** | Redis / Memory cache — needed for session, metadata, query caching |
169- | ` IQueueService ` | ** P0** | BullMQ / Redis Streams — needed for async workflows and jobs |
170- | ` IJobService ` | ** P0** | Cron/interval scheduling — depends on IQueueService |
171- | ` IStorageService ` | ** P1** | S3 / Azure Blob / Local FS — file upload/download for apps |
172- | ` ISchemaDriver ` | ** P1** | DDL operations — needed for ` objectstack migrate ` CLI command |
173-
174- - [ ] ` plugin -cache` — Implement ` ICacheService ` with Redis + in-memory fallback
175- - [ ] ` plugin -queue` — Implement ` IQueueService ` with BullMQ adapter
176- - [ ] ` plugin -job` — Implement ` IJobService ` with cron scheduling
177- - [ ] ` plugin -storage` — Implement ` IStorageService ` with S3/local adapters
204+ | Contract | Priority | Package | Notes |
205+ | :---| :---:| :---| :--- |
206+ | ` ICacheService ` | ** P0** | ` @objectstack/service-cache ` | Redis / Memory cache — needed for session, metadata, query caching |
207+ | ` IQueueService ` | ** P0** | ` @objectstack/service-queue ` | BullMQ / Redis Streams — needed for async workflows and jobs |
208+ | ` IJobService ` | ** P0** | ` @objectstack/service-job ` | Cron/interval scheduling — depends on IQueueService |
209+ | ` IStorageService ` | ** P1** | ` @objectstack/service-storage ` | S3 / Azure Blob / Local FS — file upload/download for apps |
210+ | ` ISchemaDriver ` | ** P1** | — | DDL operations — needed for ` objectstack migrate ` CLI command |
211+
212+ - [ ] ` service -cache` — Implement ` ICacheService ` with Redis + in-memory fallback
213+ - [ ] ` service -queue` — Implement ` IQueueService ` with BullMQ adapter
214+ - [ ] ` service -job` — Implement ` IJobService ` with cron scheduling
215+ - [ ] ` service -storage` — Implement ` IStorageService ` with S3/local adapters
178216- [ ] Schema driver integration into PostgreSQL/MongoDB drivers
179217
180218### Priority 2 — Communication Services
181219
182- | Contract | Priority | Notes |
183- | :---| :---:| :---|
184- | ` IRealtimeService ` | ** P1** | WebSocket/SSE pub/sub for live data |
185- | ` INotificationService ` | ** P2** | Email/SMS/Push/Slack/Teams/Webhook |
186- | ` IGraphQLService ` | ** P2** | Auto-generated GraphQL from object schemas |
187- | ` II18nService ` | ** P2** | Runtime i18n with locale loading and translation |
220+ | Contract | Priority | Package | Notes |
221+ | :---| :---:| :---| :--- |
222+ | ` IRealtimeService ` | ** P1** | ` @objectstack/service-realtime ` | WebSocket/SSE pub/sub for live data |
223+ | ` INotificationService ` | ** P2** | ` @objectstack/service-notification ` | Email/SMS/Push/Slack/Teams/Webhook |
224+ | ` IGraphQLService ` | ** P2** | ` @objectstack/service-graphql ` | Auto-generated GraphQL from object schemas |
225+ | ` II18nService ` | ** P2** | ` @objectstack/service-i18n ` | Runtime i18n with locale loading and translation |
188226
189- - [ ] ` plugin -realtime` — Implement ` IRealtimeService ` with WebSocket + Redis pub/sub
190- - [ ] ` plugin -notification` — Implement ` INotificationService ` with channel adapters
191- - [ ] ` plugin -graphql` — Implement ` IGraphQLService ` with auto-schema generation from objects
192- - [ ] ` plugin -i18n` — Implement ` II18nService ` with file-based locale loading
227+ - [ ] ` service -realtime` — Implement ` IRealtimeService ` with WebSocket + Redis pub/sub
228+ - [ ] ` service -notification` — Implement ` INotificationService ` with channel adapters
229+ - [ ] ` service -graphql` — Implement ` IGraphQLService ` with auto-schema generation from objects
230+ - [ ] ` service -i18n` — Implement ` II18nService ` with file-based locale loading
193231
194232### Priority 3 — Business Logic Services
195233
196- | Contract | Priority | Notes |
197- | :---| :---:| :---|
198- | ` IAutomationService ` | ** P2** | Flow execution engine — depends on queue/job |
199- | ` IWorkflowService ` | ** P2** | State machine + approval processes |
200- | ` ISearchService ` | ** P2** | Full-text search via MeiliSearch/Elasticsearch |
201- | ~~ ` IUIService ` ~~ | ** Deprecated** | Merged into ` IMetadataService ` — use ` metadata.getView() ` , ` metadata.getEffective('view', name, { userId }) ` |
202- | ` IAnalyticsService ` | ** P3** | BI/OLAP queries (memory impl exists as reference) |
203-
204- - [ ] ` plugin -automation` — Implement ` IAutomationService ` with flow execution engine
205- - [ ] ` plugin -workflow` — Implement ` IWorkflowService ` with state machine runtime
206- - [ ] ` plugin -search` — Implement ` ISearchService ` with MeiliSearch adapter
234+ | Contract | Priority | Package | Notes |
235+ | :---| :---:| :---| :--- |
236+ | ` IAutomationService ` | ** P2** | ` @objectstack/service-automation ` | Flow execution engine — depends on queue/job |
237+ | ` IWorkflowService ` | ** P2** | ` @objectstack/service-workflow ` | State machine + approval processes |
238+ | ` ISearchService ` | ** P2** | ` @objectstack/service-search ` | Full-text search via MeiliSearch/Elasticsearch |
239+ | ~~ ` IUIService ` ~~ | ** Deprecated** | — | Merged into ` IMetadataService ` — use ` metadata.getView() ` , ` metadata.getEffective('view', name, { userId }) ` |
240+ | ` IAnalyticsService ` | ** P3** | ` @objectstack/service-analytics ` | BI/OLAP queries (memory impl exists as reference) |
241+
242+ - [ ] ` service -automation` — Implement ` IAutomationService ` with flow execution engine
243+ - [ ] ` service -workflow` — Implement ` IWorkflowService ` with state machine runtime
244+ - [ ] ` service -search` — Implement ` ISearchService ` with MeiliSearch adapter
207245- [ ] ~~ Enhance ` IUIService ` runtime implementation~~ (merged into IMetadataService)
208- - [ ] ` plugin -analytics` — Implement full ` IAnalyticsService ` beyond memory reference
246+ - [ ] ` service -analytics` — Implement full ` IAnalyticsService ` beyond memory reference
209247
210248### Priority 4 — Platform Services
211249
212- | Contract | Priority | Notes |
213- | :---| :---:| :---|
214- | ` IAIService ` | ** P2** | LLM integration (OpenAI/Anthropic/local) |
215- | ` IStartupOrchestrator ` | ** P3** | Advanced startup coordination (current kernel handles basics) |
216- | ` IPluginValidator ` | ** P3** | Plugin marketplace validation |
217- | ` IPluginLifecycleEvents ` | ** P3** | Typed event emitter (partial in kernel) |
250+ | Contract | Priority | Package | Notes |
251+ | :---| :---:| :---| :--- |
252+ | ` IAIService ` | ** P2** | ` @objectstack/service-ai ` | LLM integration (OpenAI/Anthropic/local) |
253+ | ` IStartupOrchestrator ` | ** P3** | — | Advanced startup coordination (current kernel handles basics) |
254+ | ` IPluginValidator ` | ** P3** | — | Plugin marketplace validation |
255+ | ` IPluginLifecycleEvents ` | ** P3** | — | Typed event emitter (partial in kernel) |
218256
219- - [ ] ` plugin -ai` — Implement ` IAIService ` with multi-provider LLM routing
257+ - [ ] ` service -ai` — Implement ` IAIService ` with multi-provider LLM routing
220258- [ ] Advanced startup orchestrator for large plugin graphs
221259- [ ] Plugin marketplace validator for community plugins
222260
@@ -281,7 +319,7 @@ These are the backbone of ObjectStack's enterprise capabilities.
281319
282320### 7.1 Core AI Services
283321
284- - [ ] ` plugin -ai` — Multi-provider LLM service (OpenAI, Anthropic, Gemini, local models)
322+ - [ ] ` service -ai` — Multi-provider LLM service (OpenAI, Anthropic, Gemini, local models)
285323- [ ] NLQ (Natural Language Query) runtime — translate natural language to ObjectQL
286324- [ ] Embedding service for vector search and RAG
287325
@@ -357,24 +395,24 @@ These are the backbone of ObjectStack's enterprise capabilities.
357395| 1 | Data Engine | ` IDataEngine ` | ✅ | ` @objectstack/objectql ` | Full CRUD + hooks + middleware |
358396| 2 | Data Driver | ` IDataDriver ` | ✅ | ` @objectstack/driver-memory ` | In-memory reference driver |
359397| 3 | Metadata Service | ` IMetadataService ` | ✅ | ` @objectstack/metadata ` | Full CRUD + overlays + deps |
360- | 4 | Auth Service | ` IAuthService ` | ✅ | ` @objectstack/plugin-auth ` | better-auth integration |
361- | 5 | HTTP Server | ` IHttpServer ` | ✅ | ` @objectstack/plugin-hono-server ` | Hono-based server |
398+ | 4 | Auth Service | ` IAuthService ` | ✅ | ` @objectstack/plugin-auth ` → ` @objectstack/service-auth ` in v4.0 | better-auth integration |
399+ | 5 | HTTP Server | ` IHttpServer ` | ✅ | ` @objectstack/plugin-hono-server ` → ` @objectstack/service-http ` in v4.0 | Hono-based server |
362400| 6 | Logger | ` Logger ` | ✅ | ` @objectstack/core ` | Pino-based structured logging |
363401| 7 | Service Registry | ` IServiceRegistry ` | ✅ | ` @objectstack/core ` | Built into ObjectKernel |
364402| 8 | Analytics Service | ` IAnalyticsService ` | 🟡 | ` @objectstack/driver-memory ` | Memory reference only |
365403| 9 | Plugin Lifecycle | ` IPluginLifecycleEvents ` | 🟡 | ` @objectstack/core ` | Partial in kernel |
366- | 10 | Cache Service | ` ICacheService ` | ❌ | — | Spec only |
367- | 11 | Queue Service | ` IQueueService ` | ❌ | — | Spec only |
368- | 12 | Job Service | ` IJobService ` | ❌ | — | Spec only |
369- | 13 | Storage Service | ` IStorageService ` | ❌ | — | Spec only |
370- | 14 | Realtime Service | ` IRealtimeService ` | ❌ | — | Spec only |
371- | 15 | Search Service | ` ISearchService ` | ❌ | — | Spec only |
372- | 16 | Notification Service | ` INotificationService ` | ❌ | — | Spec only |
373- | 17 | AI Service | ` IAIService ` | ❌ | — | Spec only |
374- | 18 | Automation Service | ` IAutomationService ` | ❌ | — | Spec only |
375- | 19 | Workflow Service | ` IWorkflowService ` | ❌ | — | Spec only |
376- | 20 | GraphQL Service | ` IGraphQLService ` | ❌ | — | Spec only |
377- | 21 | i18n Service | ` II18nService ` | ❌ | — | Spec only |
404+ | 10 | Cache Service | ` ICacheService ` | ❌ | ` @objectstack/service-cache ` (planned) | Spec only |
405+ | 11 | Queue Service | ` IQueueService ` | ❌ | ` @objectstack/service-queue ` (planned) | Spec only |
406+ | 12 | Job Service | ` IJobService ` | ❌ | ` @objectstack/service-job ` (planned) | Spec only |
407+ | 13 | Storage Service | ` IStorageService ` | ❌ | ` @objectstack/service-storage ` (planned) | Spec only |
408+ | 14 | Realtime Service | ` IRealtimeService ` | ❌ | ` @objectstack/service-realtime ` (planned) | Spec only |
409+ | 15 | Search Service | ` ISearchService ` | ❌ | ` @objectstack/service-search ` (planned) | Spec only |
410+ | 16 | Notification Service | ` INotificationService ` | ❌ | ` @objectstack/service-notification ` (planned) | Spec only |
411+ | 17 | AI Service | ` IAIService ` | ❌ | ` @objectstack/service-ai ` (planned) | Spec only |
412+ | 18 | Automation Service | ` IAutomationService ` | ❌ | ` @objectstack/service-automation ` (planned) | Spec only |
413+ | 19 | Workflow Service | ` IWorkflowService ` | ❌ | ` @objectstack/service-workflow ` (planned) | Spec only |
414+ | 20 | GraphQL Service | ` IGraphQLService ` | ❌ | ` @objectstack/service-graphql ` (planned) | Spec only |
415+ | 21 | i18n Service | ` II18nService ` | ❌ | ` @objectstack/service-i18n ` (planned) | Spec only |
378416| 22 | UI Service | ` IUIService ` | ⚠️ | — | ** Deprecated** — merged into ` IMetadataService ` |
379417| 23 | Schema Driver | ` ISchemaDriver ` | ❌ | — | Spec only |
380418| 24 | Startup Orchestrator | ` IStartupOrchestrator ` | ❌ | — | Kernel handles basics |
@@ -426,6 +464,7 @@ These are the backbone of ObjectStack's enterprise capabilities.
426464| Priority | Action | Reason |
427465| :---:| :---| :---|
428466| ** P0** | Complete Zod v4 migration | 2-7x performance improvement + built-in JSON Schema |
467+ | ** P0** | Rename ` plugin-auth ` → ` service-auth ` , ` plugin-hono-server ` → ` service-http ` , ` plugin-security ` → ` service-security ` | Align existing packages with ` service-* ` / ` plugin-* ` naming convention |
429468| ** P1** | Add JSON Schema output layer | Provide protocol descriptions for non-TS ecosystems (Python/Go clients) |
430469| ** P2** | Consider OpenAPI Spec generation | Auto-generate OpenAPI from Zod Schema, connecting the full API toolchain |
431470| ** P3** | Evaluate Effect Schema | If Zod v4 performance is still insufficient, as a long-term candidate |
@@ -437,10 +476,10 @@ These are the backbone of ObjectStack's enterprise capabilities.
437476| Version | Target | Focus |
438477| :---| :---| :---|
439478| ** v3.0** | ✅ Shipped | Protocol specification complete, core runtime stable |
440- | ** v3.1** | Q2 2026 | Essential services (Cache, Queue, Job, Storage ), PostgreSQL driver |
441- | ** v3.2** | Q3 2026 | Communication services (Realtime, GraphQL, i18n, Notifications ) |
442- | ** v3.3** | Q4 2026 | Business logic services (Automation, Workflow, Search ) |
443- | ** v4.0** | Q1 2027 | Zod v4 migration, JSON Schema output, OpenAPI generation, AI services, multi-tenancy |
479+ | ** v3.1** | Q2 2026 | Essential services (` service-cache ` , ` service-queue ` , ` service-job ` , ` service-storage ` ), PostgreSQL driver |
480+ | ** v3.2** | Q3 2026 | Communication services (` service-realtime ` , ` service-graphql ` , ` service- i18n` , ` service-notification ` ) |
481+ | ** v3.3** | Q4 2026 | Business logic services (` service-automation ` , ` service-workflow ` , ` service-search ` ) |
482+ | ** v4.0** | Q1 2027 | Zod v4 migration, ` plugin-auth ` → ` service-auth ` rename, JSON Schema output, OpenAPI generation, AI services, multi-tenancy |
444483| ** v4.1** | Q2 2027 | Studio IDE general availability, marketplace launch |
445484| ** v5.0** | 2027+ | Managed cloud, app store, global ecosystem |
446485
0 commit comments