Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A distributed service locator, written on top of Node.js

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 dislocate
Octocat-spinner-32 extern
Octocat-spinner-32 test
Octocat-spinner-32 LICENSE
Octocat-spinner-32 NOTICE
Octocat-spinner-32 README
Octocat-spinner-32 SConstruct
Octocat-spinner-32 TODO
Octocat-spinner-32 ndislocate.js
README
Dislocate - A distributed service locator
------

Dislocate aims to eliminate the need to configure 'where' a service is 
available on a network, and enable auto discovery of new services, and high 
performance location of these services by clients.

Dislocate is a combination of what monitoring, DNS and load balancers are meant
to do -- but maintaining those services on a large scale distributed system
is a significant toll on sysadmins.  Dislocate aims to reduce the amount of
work that sysadmins need to do to maintain properly scaling architectures on
distributed, disperse and dynamic networks.

Clients on the localhost ask Dislocate for a service, via either HTTP or a file
on disk.  Dislocate provides information about both the service, and the machine
hosting it, so that the clients can make load balancing decisions, like
using the least loaded slave SQL server.

Dislocate itself bootstraps based upon a few seed nodes, and then forms a
peer to peer network over TCP with other Dislocate nodes.  Communication
between each node is authenticated by a shared secret.

Services register themselves with their local Dislcoate instance on startup, and 
then Dislocate will advertise them to other peers.  The service can register
how Dislocate should see if its still alive, including TCP health checks
or other custom functions.

Status
------
Pre-Alpha.  Lots of work to do, I've been trying to hack down the TODO file
whenever I get a chance.

I welcome help:
  IRC: pquerna on Freenode (#bloglines or other channels). 
  E-Mail: <pquerna apache.org>
Something went wrong with that request. Please try again.