
# [Node XYZ](https://node-xyz.github.io/) ![logo](https://github.com/node-xyz/xyz-core/blob/master/media/logo_t.png?raw=true)

[![Build Status](https://travis-ci.org/node-xyz/xyz-core.svg?branch=master)](https://travis-ci.org/node-xyz/xyz-core)
[![Code Climate](https://codeclimate.com/github/node-xyz/xyz-core/badges/gpa.svg)](https://codeclimate.com/github/node-xyz/xyz-core)
[![Standard - JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](http://standardjs.com/)
[![npm version](https://badge.fury.io/js/xyz-core.svg)](https://badge.fury.io/js/xyz-core)
---

Node XYZ is a NodeJS toolkit for creating microservice based distributed applications. The main aim of XYZ is to cover following aspects of microservice architecture:

  - **Service discovery and Communication**:
    XYZ provides an easy *Path based* identification for services that each host is exposing. This ensures flexible messaging infrastructure. Consequently, XYZ systems are ***Soft*** and can act as you wish when it comes to accepting new hosts to the system.

  - **Deployment and Development**:
    XYZ provides a handy command line interface, using which you can easily test your microservices locally, deploy them and monitor them.

  - **Infinite Scalability: Configurations** are the last key component to ensure that *XYZ will commensurate with whatever requirements your system might have*. That is to say, XYZ will not enforce any application dependent configuration, instead, it will provide only a default behavior (as a fallback) for it and enables you to easily override this default behavior.

[![XYZ introduction demo](https://img.youtube.com/vi/tFBvnUHnmAk/0.jpg)](https://www.youtube.com/watch?v=tFBvnUHnmAk)

## Getting Started with Node XYZ

- [Website](https://node-xyz.github.io)
- [Getting Started](https://node-xyz.github.io/documentations)
- [API Doc](https://node-xyz.github.io/apidoc)
- [Wiki](https://github.com/node-xyz/xyz-core/wiki)
