novln / shen

A tiny ChatOps

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Shen

Requirements

  • go v1.6.2
  • node v6.3.0

Install source on local filesystem

cd $GOPATH
mkdir -p src/github.com/november-eleven/
cd src/github.com/november-eleven/
git clone --recursive git@github.com:november-eleven/shen.git
cd shen

Compile

make

Launch

cd dist && ./shen

Under the hood

  • Peer signaling is handled by a registration system inspired by bittorrent tracker system.
  • Shen is exclusively a REST API: there is no WebSocket or Server Side Event.
  • Shen is designed to be stateless and data-loss tolerant.
  • Shen use HTTP 1.1 so any client, regardless of its network topology or vendoring, can access this platform.
  • The asynchronous mecanism of registration and peers exchange enable the client to release the connection quite often: maintaining a network connection is no longer required.
  • Shen use an in-memory database to reduce request latency by network or filesystem read and write access.
  • Shen use a concurrent access lock-mecanism for its in-memory database: Read and Write try to be as fast as possible.
  • Scaling-up is not an issue if a node discovery mecanism is implemented: a peer will try to communicate with the same node, or try others as fallback if it fails...

About

A tiny ChatOps


Languages

Language:Go 61.0%Language:JavaScript 27.9%Language:HTML 7.2%Language:Shell 2.7%Language:Makefile 0.8%Language:CSS 0.4%