Features & Roadmap¶
The framework is supposed to cover the requirements of the Microservice Patterns documented by Chris Richardson.
Model features¶
A Model
is a central data object, representing the domain of our business logic (eg. User, Project, Task, etc.).
- [x] validation on the data model using multiple custom validators
- [x] json serialisation support
- [x] json schema generator
- [x] value generators
- [x] value converters
- [x] wire-format marshaller
- [x] omitted fields
ORM features¶
Appkernel features a thin and beautiful Object Relational Mapping (ORM/a.k.a database access layer / repository) implementation, making access to your data a super-simple task.
- [x] basic CRUD (create/update/delete) operations
- [x] easy to use active record style queries
- [x] automatically generated prefixed database ID
- [x] index management (unique index, text index, etc.) on the database
- [x] database schema validation and schema management
- [x] builtin converters for serialising or deserialising the model to and from various other formats
- [x] audited fields (eg. automatically added created, updated, updated_by fields)
- [x] document versioning
- [x] Bulk Inserts
- [x] Atomic updates
- [ ] Optimistic locking
- [ ] Concurrency and transaction control
- [ ] Predefined Database Filters
- [ ] Projections
- [ ] Internal Resources
REST Service Endpoints¶
- [x] REST services (GET, PUT, POST, PATCH, DELETE)
- [x] HATEOAS actions on model
- [x] model metadata and json schema
- [x] URL query interface
- [x] Read-only by default
- [x] role based account management (RBAC)
- [x] basic authentication and JWT token support
- [x] customised, machine readable error messages
- [ ] OpenApi support
- [ ] File Storage
- [ ] JSONP
- [ ] graphql support
- [ ] Conditional Requests
- [ ] OAUTH
- [ ] rate limiting and circuit breaker
- [ ] API Versioning
- [ ] GeoJSON
Performance controls¶
- [ ] Data Integrity and Concurrency Control
- [ ] Resource-level Cache Control
Microservice Infrastructure¶
- [x] externalized configuration
- [ ] scheduler and background task executor
- [ ] health checks
- [ ] simplified logging
- [ ] enhanced logging for ops teams
- [ ] circuit breakers
- [ ] CQRS
- [ ] Event sourcing
- [ ] SAGA Pattern
- [ ] metrics
- [ ] service registration and discovery
- [ ] webflow a web state machine