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