# tina4stack/tina4-nodejs architecture

> Architecture diagram of the GitHub repository tina4stack/tina4-nodejs, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tina4stack/tina4-nodejs
- Repository: https://github.com/tina4stack/tina4-nodejs

## Overview

Tina4 Node.js is a TypeScript web application framework. Its main runtime path accepts an HTTP request, discovers and dispatches a route through middleware and security checks, invokes a handler, and returns a response. Around that path, it provides database/ORM access, templates, background work, and API protocols. The README documents additional capabilities whose implementation was not sampled; those are represented at their supported enclosing paths, without inferring internal call chains. Optional database and service drivers are shown separately.

Main entry points: [`packages/core/src/server.ts`](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/server.ts) (HTTP Server), [`packages/core/src/dispatchPipeline.ts`](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/dispatchPipeline.ts) (Request Pipeline), [`packages/orm/src/database.ts`](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/database.ts) (Database Access), [`packages/core/src/router.ts`](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/router.ts) (Router and Middleware)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_http["HTTP Runtime"]
  node_server["HTTP Server<br/>[server.ts]"]
  node_discovery["Route Discovery<br/>[routeDiscovery.ts]"]
  node_dispatch["Request Pipeline"]
  node_router["Router and Middleware<br/>[router.ts]"]
  node_auth["Auth and Sessions<br/>[auth.ts]"]
  node_responses["Request Responses<br/>[response.ts]"]
  node_static["Static Files<br/>[static.ts]"]
  node_frond["Frond Templates<br/>[engine.ts]"]
end

subgraph group_data["Data and Models"]
  node_database["Database Access<br/>[database.ts]"]
  node_adapters["SQL Adapters<br/>[sqlDialect.ts]"]
  node_query["Query Builder<br/>[queryBuilder.ts]"]
  node_models["ORM Models<br/>[model.ts]"]
  node_migrations["Migrations and Seeding<br/>[migration.ts]"]
  node_graphdb["Graph Database<br/>[graphDatabase.ts]"]
end

subgraph group_async["Background Work"]
  node_jobs["Job Queue<br/>[queue.ts]"]
  node_queue_backends["Queue Backends<br/>[liteBackend.ts]"]
  node_events["Events and Services<br/>[events.ts]"]
end

subgraph group_integration["APIs and Integrations"]
  node_api["HTTP Client<br/>[api.ts]"]
  node_graphql["GraphQL<br/>[graphql.ts]"]
  node_websocket["WebSockets<br/>[websocket.ts]"]
  node_mcp["MCP Server<br/>[mcp.ts]"]
  node_swagger["OpenAPI<br/>[generator.ts]"]
end

subgraph group_developer["Developer Experience"]
  node_cli["Project CLI<br/>[bin.ts]"]
  node_project_index["AI Project Context"]
  node_dev_tools["Development Tools<br/>[devAdmin.ts]"]
end

node_developer(("Application Developer"))
node_client(("HTTP Client"))
node_database_service[("Database Engines")]
node_external_services(("External Services"))

node_client -->|"sends request"| node_server
node_server -->|"loads routes"| node_discovery
node_server -->|"dispatches request"| node_dispatch
node_dispatch -->|"matches route"| node_router
node_dispatch -->|"checks access"| node_auth
node_router -->|"invokes handler"| node_responses
node_server -->|"serves assets"| node_static
node_server -->|"renders templates"| node_frond
node_responses -->|"sends response"| node_client
node_models -->|"builds queries"| node_query
node_query -->|"executes queries"| node_database
node_database -->|"selects adapter"| node_adapters
node_adapters -.->|"accesses engine"| node_database_service
node_migrations -->|"changes schema"| node_database
node_graphdb -.->|"connects graph store"| node_external_services
node_jobs -->|"dispatches jobs"| node_queue_backends
node_queue_backends -.->|"uses optional broker"| node_external_services
node_events -->|"schedules work"| node_jobs
node_api -->|"calls services"| node_external_services
node_graphql -->|"exposes data"| node_models
node_websocket -.->|"optional backplane"| node_external_services
node_swagger -->|"documents routes"| node_discovery
node_developer -->|"runs commands"| node_cli
node_cli -->|"starts application"| node_server
node_developer -->|"requests context"| node_project_index
node_developer -->|"uses dashboard"| node_dev_tools

click node_server "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/server.ts"
click node_discovery "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/routeDiscovery.ts"
click node_dispatch "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/dispatchPipeline.ts"
click node_router "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/router.ts"
click node_auth "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/auth.ts"
click node_responses "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/response.ts"
click node_static "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/static.ts"
click node_frond "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/frond/src/engine.ts"
click node_database "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/database.ts"
click node_adapters "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/adapters/sqlDialect.ts"
click node_query "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/queryBuilder.ts"
click node_models "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/model.ts"
click node_migrations "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/migration.ts"
click node_graphdb "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/graph/graphDatabase.ts"
click node_jobs "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/queue.ts"
click node_queue_backends "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/queueBackends/liteBackend.ts"
click node_events "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/events.ts"
click node_api "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/api.ts"
click node_graphql "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/graphql.ts"
click node_websocket "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/websocket.ts"
click node_mcp "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/mcp.ts"
click node_swagger "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/swagger/src/generator.ts"
click node_cli "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/cli/src/bin.ts"
click node_project_index "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/projectIndexStorage.ts"
click node_dev_tools "https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/devAdmin.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_discovery,node_dispatch,node_router,node_auth,node_responses,node_static,node_frond,node_client toneBlue
class node_database,node_adapters,node_query,node_models,node_migrations,node_graphdb,node_database_service toneAmber
class node_jobs,node_queue_backends,node_events toneMint
class node_api,node_graphql,node_websocket,node_mcp,node_swagger toneRose
class node_cli,node_project_index,node_dev_tools,node_developer,node_external_services toneIndigo
```

## Components

### HTTP Runtime

- [HTTP Server](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/server.ts): `packages/core/src/server.ts`
- [Route Discovery](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/routeDiscovery.ts): `packages/core/src/routeDiscovery.ts`
- [Request Pipeline](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/dispatchPipeline.ts): `packages/core/src/dispatchPipeline.ts`
- [Router and Middleware](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/router.ts): `packages/core/src/router.ts`
- [Auth and Sessions](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/auth.ts): `packages/core/src/auth.ts`
- [Request Responses](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/response.ts): `packages/core/src/response.ts`
- [Static Files](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/static.ts): `packages/core/src/static.ts`
- [Frond Templates](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/frond/src/engine.ts): `packages/frond/src/engine.ts`

### Data and Models

- [Database Access](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/database.ts): `packages/orm/src/database.ts`
- [SQL Adapters](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/adapters/sqlDialect.ts): `packages/orm/src/adapters/sqlDialect.ts`
- [Query Builder](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/queryBuilder.ts): `packages/orm/src/queryBuilder.ts`
- [ORM Models](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/model.ts): `packages/orm/src/model.ts`
- [Migrations and Seeding](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/migration.ts): `packages/orm/src/migration.ts`
- [Graph Database](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/orm/src/graph/graphDatabase.ts): `packages/orm/src/graph/graphDatabase.ts`

### Background Work

- [Job Queue](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/queue.ts): `packages/core/src/queue.ts`
- [Queue Backends](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/queueBackends/liteBackend.ts): `packages/core/src/queueBackends/liteBackend.ts`
- [Events and Services](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/events.ts): `packages/core/src/events.ts`

### APIs and Integrations

- [HTTP Client](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/api.ts): `packages/core/src/api.ts`
- [GraphQL](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/graphql.ts): `packages/core/src/graphql.ts`
- [WebSockets](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/websocket.ts): `packages/core/src/websocket.ts`
- [MCP Server](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/mcp.ts): `packages/core/src/mcp.ts`
- [OpenAPI](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/swagger/src/generator.ts): `packages/swagger/src/generator.ts`

### Developer Experience

- [Project CLI](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/cli/src/bin.ts): `packages/cli/src/bin.ts`
- [AI Project Context](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/projectIndexStorage.ts): `packages/core/src/projectIndexStorage.ts`
- [Development Tools](https://github.com/tina4stack/tina4-nodejs/blob/v3/packages/core/src/devAdmin.ts): `packages/core/src/devAdmin.ts`

### Other components

- **Application Developer**
- **HTTP Client**
- **Database Engines**
- **External Services**

## Connections

- HTTP Client → HTTP Server: sends request
- HTTP Server → Route Discovery: loads routes
- HTTP Server → Request Pipeline: dispatches request
- Request Pipeline → Router and Middleware: matches route
- Request Pipeline → Auth and Sessions: checks access
- Router and Middleware → Request Responses: invokes handler
- HTTP Server → Static Files: serves assets
- HTTP Server → Frond Templates: renders templates
- Request Responses → HTTP Client: sends response
- ORM Models → Query Builder: builds queries
- Query Builder → Database Access: executes queries
- Database Access → SQL Adapters: selects adapter
- SQL Adapters → Database Engines: accesses engine
- Migrations and Seeding → Database Access: changes schema
- Graph Database → External Services: connects graph store
- Job Queue → Queue Backends: dispatches jobs
- Queue Backends → External Services: uses optional broker
- Events and Services → Job Queue: schedules work
- HTTP Client → External Services: calls services
- GraphQL → ORM Models: exposes data
- WebSockets → External Services: optional backplane
- OpenAPI → Route Discovery: documents routes
- Application Developer → Project CLI: runs commands
- Project CLI → HTTP Server: starts application
- Application Developer → AI Project Context: requests context
- Application Developer → Development Tools: uses dashboard
