Dislocate, A distributed service locator

Abstract

dislocate is a service to locate resources on a network. It is written in Javascript, on top of Node.JS. Philosophically, it provides a hybrid of DNS, Monitoring, Load Balancing and Configuration Management, but optimized for dynamic environments, like cloud computing or large scale clusters.

Proposal

  • Provide a peer to peer, reliable, service discovery server.
  • Provide client APIs in all popular languages and frameworks.

Background

Traditional management techniques for large scale distributed systems have been proprietary. This is because most people don't need to run large systems that are constantly changing. With the evolution of cloud computing and the prospects of automatically scaling services, the need to do this on top of open source stacks is increasing.

Apache Zookeeper is sometimes used for a similar task, but we believe a project optimized for this use case, and one that communicates in a more portable manner, over HTTP and files in JSON, will prove to be more popular for this purpose.

This project was at one time proposed under the Apache Labs PMC, in December 2006. I didn't have time at the time to write the code. Many of the core ideas are the same, but all of the code has been written in 2010, in javascript instead of C & Lua.

Rationale

There is a strong need in the developing cloud infrastructure for a community supported, high quality, and vendor independent tool set for managing dynamic services in the cloud.

Initial Goals

Dislocate is an existing open source project, but without a large community. We view the moving to Apache as a way to improve this community.

Current Status

Dislocate is already open source under the ASL 2.0. It currently only has one main developer (Paul Querna), and is seeking to build a larger community.

Community

Currently Dislocate has not had many external contributors. We would like to increase our userbase as part of the incubator process.

Core Developers

Paul Querna (ASF member) wrote most of the code.

Alignment

Currently there are not many Apache communities involved with cloud computing or javascript based infrastructure. We believe introducing such a community is a good thing for the Apache Software Foundation.

Known Risks

Orphaned products

dislocate currently only has one main developer, so the risk is higher here, but a goal of moving to Apache is to build a community around it.

Inexperience with Open Source

Paul is an ASF member for developer for many open source projects.

Homogeneous Developers

Currently only one main developer.

Reliance on Salaried Developers

No developers are paid to work on Dislocate at this time.

Relationships with Other Apache Products

The Dislocate service itself doesn't share many attributes with existing Apache projects due to it being in Javascript. The client libraries could be used by many projects like CouchDB, Cassandra, HTTPD, etc.

A Excessive Fascination with the Apache Brand

Dislocate project seeks to build a strong community around distributed system and backend services, areas traditionally strong within Apache projects, but it is not fascinated with any short term gains of being associated with the Apache Brand.

Documentation

Initial Source

Initial source is contained completely inside the ndislocate github repository.

External Dependencies

Cryptography

Uses node.js bindings to OpenSSL for SSL and HMACs.

Required Resources

Mailing lists

  • dislocate-dev
  • dislocate-users
  • dislocate-commits
  • dislocate-private

Subversion

Issue Tracking

  • JIRA (DLCT)

Initial Committers

  • Paul Querna <pquerna>

Sponsors

Champion

  • Paul Querna

Sponsoring Entity

  • Incubator PMC
  • No labels