/turing-microservice

A common basis for Node.js microservices.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

turing-microservice

turing-microservice

build coverage bitHound dependencies devDependencies version license

"We can only see a short distance ahead, but we can see plenty there that needs to be done."
- Alan Turing

A common basis for Node.js microservices.

Breaking Changes

turing-microservice is a work in progress. See CHANGELOG.md for instructions on breaking changes.

Features

  • config module: Adds hierarchical configuration with files, environment variables and command-line arguments.
  • health module: Adds an express route for an health check.
  • logging module: Adds multi-transport async logging.
  • mongo module: Adds a port to mongodb.
  • server module: Adds an express server.
  • status module: Adds aggregation of sub-statuses and express routes for an html and json status report.
  • vault module: Adds a promise for merging secrets from vault with config.

next up:

  • toggles module: Adds feature-toggles support.
    • toggles-mongo module: Adds toggle persistence to mongodb.
  • jobs module: Adds jobs support.
    • jobs-mongo module: Adds jobs persistence to mongodb.
  • hmac module: Adds middleware for hmac authentication.
  • metrics module: Adds metrics support. (e.g. RAM, CPU,...)
  • cache module: Adds application cache support.

Example: turing-example

Contains tasks for:

  • watch: Provides live reloading of code during development.
  • test: Test server and client side.
  • build: Build production assets with service-worker caching and offline support.
  • start: Start the server in production mode.

Setup

Install dependencies:

$ npm install && npm run bootstrap

Testing

$ npm test

Dependency Update

Client dependencies:

$ npm-check -E -u

Contributors

  • Benedikt Stemmildt

License

Apache-2.0