Skip to main content

Backend Data Layer

This section documents the data access and GraphQL-facing layer in backend.

Main Responsibilities

  • Define GraphQL schema and resolver entry points.
  • Validate resolver-level input and permission preconditions.
  • Delegate domain/business logic to application services.
  • Convert persistence rows into GraphQL response shapes.

Key Directories

  • src/data/schema.ts: GraphQL root schema assembly.
  • src/data/queries/**: query resolvers.
  • src/data/mutations/**: mutation resolvers.
  • src/data/types/**: GraphQL object types and field resolvers.
  • src/data/permissions.ts: permission definitions and guards.

Resolver Pattern

  1. Parse request context and args.
  2. Validate auth/permissions.
  3. Call service/repository through UnitOfWork.
  4. Return typed payload.

API Reference Entry Points

  • API root
  • Use search within API docs for: data.schema, data.permissions.
  • Keep resolver methods thin and orchestration-focused.
  • Move business logic to src/application/services.
  • Keep persistence concerns inside repositories.