Some usability feedback: It seems like the most useful information is contained in the links between nodes, but at first it was not obvious to me that they were clickable, or that clicking the text links at the bottom of node descriptions would actually show the 'link' description, rather than just taking me to the next node.<p>I'd recommend you make it clearer that the linking lines between nodes are clickable. Even better, rather than using a modal dialogue to display node contents, you could use a popover with an arrow pointing to it's owner. Clicking a link a the bottom of an item would simply move the popover, making the relationships between various items of content clearer.
I like the idea. Have you considered adding weights? I'd also consider linking to a more detailed source (wikipedia?) when available.<p>On the topic of idempotence..we recently made our platform distributed across 4 datacenters using queues. None of us really knew what we were doing. Recognizing this very early on, we made all calls idempotent. Pretty sure that single decision is what made the entire system work.
Awesome idea.<p>I know they don't get too much love on HN, but it would be cool to see this done for a set of enterprise integration patterns.<p>See:<p><a href="http://www.eaipatterns.com/toc.html" rel="nofollow">http://www.eaipatterns.com/toc.html</a><p><a href="http://camel.apache.org/enterprise-integration-patterns.html" rel="nofollow">http://camel.apache.org/enterprise-integration-patterns.html</a>
Reply to mattacular, whose comment was deaded:<p>Idempotence (literally "same power) in a REST API means a given request produces the same result whether you execute it once or multiple times. Given the URL:<p>/resource/1<p>Whether you execute the DELETE method on that resource once or ten times, the resource is deleted. Therefore, it is idempotent.
Very interesting, but I would say your tradeoffs aren't really accurate. Idempotency should decrease testing and maintenance costs because it is simpler.
I don't get why there should be an intrinsic higher development cost since you're building a simpler, saner and better-defined system. If anything, it would <i>decrease</i> development costs.
Could somebody explain how DELETE can be idempotent?<p>Ex. "Request = DELETE ID 1"<p>First request, ID 1 is deleted.
Second request, ID 1 has already been deleted.
Third request, ID 1 has already been deleted.