Skip to content

Latest commit

 

History

History
74 lines (61 loc) · 2.8 KB

File metadata and controls

74 lines (61 loc) · 2.8 KB

Features & Roadmap

The framework aims to cover the requirements of the Microservice Patterns documented by Chris Richardson.

Model features

A Model is a central domain object (e.g. User, Project, Task) that serves as the single source of truth for persistence, validation, serialisation, and REST exposure.

  • validation using multiple built-in and custom validators
  • JSON serialisation and deserialisation
  • JSON Schema generation (Draft-04)
  • value generators (UUID, timestamp, current user)
  • value converters (password hashing, normalisation)
  • wire-format marshallers (timestamp, date↔datetime)
  • fields excluded from wire format (Field(exclude=True))

ORM features

A thin and expressive Object–Document Mapping layer on top of MongoDB.

  • basic CRUD (create, update, delete) operations
  • active-record style query DSL
  • automatically generated and prefixed document IDs
  • index management (standard, unique, text)
  • MongoDB document schema validation
  • built-in serialisation converters
  • auditable fields (inserted, updated, version)
  • document versioning with optimistic locking (HTTP 409 on conflict)
  • bulk inserts
  • atomic field updates
  • predefined database filters
  • field projections
  • transactions (multi-document)

REST Service Endpoints

  • REST services (GET, PUT, POST, PATCH, DELETE)
  • HATEOAS links on model responses
  • model metadata and JSON schema endpoints
  • URL query interface (filter, sort, paginate, aggregate)
  • read-only by default; write methods opt-in
  • role-based access control (RBAC)
  • JWT authentication (RS256)
  • machine-readable error messages
  • OpenAPI 3.0 / Swagger UI support
  • file storage (filesystem and GridFS backends, validation chain)
  • rate limiting (fixed-window, per-endpoint overrides, 429 + Retry-After)
  • circuit breaker (CLOSED / OPEN / HALF_OPEN, per-upstream)
  • CORS support
  • API versioning (URL prefixes, view models, deprecation signals)
  • JSONP
  • GraphQL support
  • conditional requests (ETags, If-None-Match)
  • OAuth2 support
  • GeoJSON field type

Performance controls

  • resource-level cache control
  • data integrity and concurrency control beyond optimistic locking

Microservice infrastructure

  • externalised configuration (cfg.yml, env vars, CLI flags)
  • inter-service HTTP client with connection pooling and circuit breaker
  • scheduler and background task executor
  • health check endpoints
  • metrics collection (Prometheus / OpenTelemetry)
  • service registration and discovery
  • CQRS
  • event sourcing
  • SAGA pattern
  • Redis-backed rate limiter for multi-instance deployments
  • S3 / Azure Blob / GCS storage backends