Giter Club home page Giter Club logo

nodezoo-github's Introduction

nodezoo-github

Build Status Gitter Chat

This is a repository in the microservice demonstration system for the Tao of Microservices book (chapter 9). This code is live at nodezoo.com. To get started, visit the nodezoo/tao repository.

This microservice provides the github module data functionality.

Running

To run this microservice normally, use the tooling describing in the nodezoo/tao repository, which shows you how to run the entire system of microservices (of which this is only one of many) in production (Kubernetes), staging (Docker), and development (fuge) modes.

To run from the terminal for testing and debugging, see the Running from the terminal section below.

Message flows

The table shows how this microservice acts on the Accepted message patterns and performs appropriate business Actions, as a result of which, new messages are possibly Sent.

Accepted Actions Sent
role:github,cmd:get (SC) Get github data about a module
role:info,need:part (AO) Provide partial module information role:info,collect:part (AO)

(KEY: A: asynchronous, S: synchronous, O: observed, C: consumed)

Service interactions

github

Testing

Unit tests are in the test folder. To run, use:

$ npm test

Note that this is a learning system, and the tests are not intended to be high coverage.

Running from the terminal

This microservice is written in node.js, which you will need to download and install. Fork and checkout this repository, and then run npm inside the repository folder to install its dependencies:

$ npm install

To run this microservice separately, for development, debug, or testing purposes, use the service scripts in the srv folder:

  • github-dev.js : run the development configuration with hard-coded network ports.

    $ node srv/github-dev.js

    This script listens for messages on port 9050 and provides a REPL on port 10050 (try $ telnet localhost 10050).

    A seneca-mesh version, for testing purposes, is also shown in the script github-dev-mesh.js. For more on this, see the nodezoo-repl repository.

  • github-stage.js : run the staging configuration. This configuration is intended to run in a Docker container so listens on port 9000 by default, but you can change that by providing an optional argument to the script.

    $ node srv/github-stage.js [PORT]
  • github-prod.js : run the production configuration. This configuration is intended to run under Kubernetes in a seneca-mesh network. If running in a terminal (only do this for testing), you'll need to provide the mesh base nodes in the BASES environment variable.

    $ BASES=x.x.x.x:port node srv/github-prod.js

nodezoo-github's People

Contributors

adrianrossouw avatar eduardobs79 avatar georgette avatar glentiki avatar matt-oc avatar mcdonnelldean avatar mirceaalexandru avatar naomifeehan avatar paolochiodi avatar pelger avatar rjrodger avatar shanel262 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.