Features
Granitic is a Go framework for building web-services and micro-services. Your application will compile to a single small executable with an integrated web-server, so no external web-servers or application-servers are required.
Granitic is designed to be self-contained and does not have any downstream dependencies. Granitic is also designed to be flexible and configuration-led, so your application only contains the Granitic features you need.
Web-services
- Integrated web-server
- Automatic serialisation/deserialisation of JSON/XML
- Automatic binding of HTTP body, query paramter and path information to Go objects
- Declarative, rule-based validation of inbound data
- Customisable access logging
- Automatic error handling with error message templating
Database integration
- Templating system for separating queries and code
- Tag and reflection based data and row mapping
IoC Container
- Fully featured Inversion of Control (IoC) container
- JSON component definition
- Customisable lifecycle management and events model
- External runtime control of components and lifecycle events
Logging
- Component-centric logging with indivdual and global logging levels for components
- Full control of built-in logging as well as application logging
- External runtime control of logging
Enterprise integration
- Fine-grained integration points for IAM systems
- RDBMS agnostic
DevOps features
- Small executables (on disk and in-memory)
- Runtime control of running instances
- Configuration file merging to make multi-environment/multi-instance deployments straightforward
- Configuration files can be supplied as file paths or HTTP URIs
- Ideal for providing a service as part of a Docker container
- Instance identification