Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

hydra-integration

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hydra-integration

Minimalist 'hydra integration' module, intended for Node.js web frameworks integration.

  • 1.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
6
increased by100%
Maintainers
1
Weekly downloads
 
Created
Source

Hydra Integration Module

Integrating third-party Node.js web frameworks with Hydra, the simplest way.

Hydra is a NodeJS package, which facilitates building distributed applications such as Microservices. (https://www.hydramicroservice.com/)

The magic thing with Hydra is that with a minimum setup, your micro-service get 'superpowers':

  • Distributed Computing
  • Application Clusters + Load Balancer
  • High Availability
  • Centralized Proxy Router
  • Realtime Messaging
  • Service Discovery, Monitoring and Management
  • ... and much more (https://www.hydramicroservice.com/)

By using this module, you will be able to easily integrate your prefered web framework with hydra. Just keep reading...

Integrated frameworks

At the moment, the following frameworks are supported:

  1. Express: Fast, unopinionated, minimalist web framework for Node.js... (http://expressjs.com/)
  2. Hapi: A rich framework for building applications and services, hapi enables developers to focus on writing reusable application logic instead of spending time building infrastructure... (https://hapijs.com/)
  3. Koa: Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs... (http://koajs.com/)
  4. Sails.js: Sails makes it easy to build custom, enterprise-grade Node.js apps... (http://sailsjs.com/)
  5. Restify: Restify is a node.js module built specifically to enable you to build correct REST web services... (http://restify.com/)
  6. Restana: Super fast and minimalist web framework for building REST micro-services... (https://github.com/jkyberneees/ana)
  7. Native Hydra Service: Hydra services are ideal for making distributed API calls through HTTP or real-time events management... (https://www.hydramicroservice.com/)

Getting Started

Next we will explain you how to create and express based micro-service on top of hydra:

IMPORTANT: Hydra depends on Redis database server for storage, cache and messaging. In case you don't have it yet: https://www.hydramicroservice.com/docs/quick-start/step1.html

  1. Install dependencies:
npm i hydra hydra-integration express --save

Express is a dependency here because in the next example we use express, it could be koa or hapi, or any of the supported frameworks.

  1. Create and edit app.js file:
const HydraServiceFactory = require('hydra-integration').HydraServiceFactory;
const express = require('express');
const router = express.Router();

const factory = new HydraServiceFactory({
    hydra: {
        'serviceName': 'express-service-test',
        'serviceDescription': 'Basic express service on top of Hydra',
        'serviceIP': '127.0.0.1',
        'servicePort': 3000,
        'serviceType': 'express',
        'serviceVersion': '1.0.0',
        'redis': {
            'host': '127.0.0.1',
            'port': 6379,
            'db': 15
        }
    }
});

factory.init().then(factory => factory.getService(service => {
    router.get('/welcome', (req, res) => res.send('Hello World!'));
    service.use('/v1', router);
}));

Alternative way of getting the service instance by passing config params to the builder (if supported):

factory.init().then(factory => factory.getService({
  // optional config params here to be passed to the building strategy
  bootstrap: service => {
    router.get('/welcome', (req, res) => res.send('Hello World!'));
    service.use('/v1', router);
  }
}));

To use hydra-integration as a plugin see: The HydraIntegrationPlugin class

  1. Run your service:
  • Single process:
node app.js
  • Optionally you can run multiple processes with PM2:
pm2 start app.js -i 4
  1. Test your service using a Web browser at: http://localhost:3000/v1/welcome
  2. Test the service using the hydra-cli (https://www.hydramicroservice.com/docs/tools/hydra-cli/getting-started.html):
  • List service routes
hydra-cli routes express-service-test
{
  "serviceName": [
    "[GET]/_health",
    "[GET]/v1/welcome"
  ]
}
  • Invoke the [GET]/v1/welcome service endpoint:
hydra-cli rest express-service-test:[GET]/v1/welcome
{
  "headers": {
    "x-powered-by": "Express",
    "content-type": "text/html; charset=utf-8",
    "content-length": "12",
    "etag": "W/\"c-Lve95gjOVATpfV8EL5X4nxwjKHE\"",
    "date": "Wed, 05 Apr 2017 21:22:51 GMT",
    "connection": "close"
  },
  "body": "Hello World!",
  "statusCode": 200
}

Demos

Demos available into demos folder on the git repository: https://github.com/jkyberneees/hydra-integration

Next Topics

Complementary Topics

Keywords

FAQs

Package last updated on 08 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc