This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
commit 587157dd659785efab635285a1f6584bfed5a2a9
tree 6757625ce849a68c37225de5902678ab32327b99
parent 25844d2de84af5edc6325ecc89899cf4a33b0984
tree 6757625ce849a68c37225de5902678ab32327b99
parent 25844d2de84af5edc6325ecc89899cf4a33b0984
synapse /
| name | age | message | |
|---|---|---|---|
| |
.classpath | ||
| |
.gitignore | Wed Nov 19 12:27:04 -0800 2008 | |
| |
.project | Wed Nov 12 22:38:44 -0800 2008 | |
| |
.settings/ | Tue Nov 18 13:38:40 -0800 2008 | |
| |
COPYING | Tue Nov 18 22:07:39 -0800 2008 | |
| |
HACKING | Mon Nov 17 15:42:53 -0800 2008 | |
| |
INSTALL | Mon Nov 17 15:42:53 -0800 2008 | |
| |
LICENSE | Mon Nov 17 15:21:20 -0800 2008 | |
| |
README | Mon Nov 17 15:44:04 -0800 2008 | |
| |
pom.xml | Tue Nov 18 21:46:02 -0800 2008 | |
| |
src/ |
README
SYNAPSE
Open Source Peer-to-Peer Micro-Sharing
Wish and Discuss: http://alan.uservoice.com/pages/synapse
Develop: http://github.com/bigeasy/synapse/tree/master
Contact: alan@blogometer.com
License: GPL v 3.0 with Classpath Exception
See Also: INSTALL, HACKING, COPYING, LICENSE
UX
Synapse is an open source peer-to-peer micro-sharing application.
Synapse is used to implement a network where people share short messages
no longer than an SMS text message. Particpants in the Synapse network
subscribe to the messages of other participants. They will be able to
follow a stream of messages from the people that they follow.
Addtionally, a person can search across all messages in the network.
They can create a custom stream based on matching search terms,
subscriber, tags and URLs.
Synapse will be distributed with Java Swing UI customized for OS X,
Windows XP and Vista, and Linux desktops. The user interface, when
launched, will also launch a Synapse node.
ARCHITECTURE
Synapse is a distributed database of messages. Each client serves as a
node on the network. To paricipate in the network, they provide the
network with an order of magnitude more memory than the memory required
to store all of the messages they with to share.
Messages are stored in the network. Each participant in the network is a
node.
Data Model
The Synapse network stores messages and user profiles. Messages are
parsed into search terms. The network stores these Messages, Profiles
and Terms. When a node becomes active, the messages are injected into
the network.
Each node contains storage for messages, profiles and terms. Each
node will store a portion of the messages, profiles and terms, acting as
leaf nodes in a distributed search tree.
Routing
The network consists of a distributed B+Tree. Each node will host a
number of routing tables. The routing tables will change shape using a
tree algorithm that will split the routing tables from the storage
leaves up, as the storage leaves and routing tables become full.
Messages
Messages are sent one way. A node initiates a injection or query and
waits for a callback indicating that the injection has been performed,
or query results are returned. These actions are pulsed out into the
network until afirmations are received.
Search
Search is always a matter of returning the most recent messages that
match a query, so requests for the terms are sent out into the network,
and the results are merged. Search happens quickly because search terms
are ordered by date and merging can optimize by skipping over terms
based on the oldest term, looking for a possible match. Searches for a
specific single term, are fast.








