The framework aims to cover the requirements of the Microservice Patterns documented by Chris Richardson.
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))
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 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
- resource-level cache control
- data integrity and concurrency control beyond optimistic locking
- 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