4 ms·
Oh man, I was really, really just hoping for this. I've been avoiding putting one last piece into my server because I didn't want to use redis. I'm going to pla
by drivebyacct2 14y ago
Oh man, I was really, really just hoping for this. I've been avoiding putting one last piece into my server because I didn't want to use redis. I'm going to play with this in a couple hours.
- paddyforan 14y agoPlease do let me know how this works out for you. And I mention it in the blog post, and I mention it in the README, but I feel I should reinforce this: This. Is. Alpha. Please don't use it in your mission-critical code. I'd like to run a lot more tests on it. I'd like other people to run tests on it and let me know what they think. This is my first time writing anything this complex, and I want any and all feedback I can get on it. Thanks!
- drivebyacct2 14y agoMission critical implies far more importance than this project deserves. Spotted a typo on the line "OnNodeExit", "Applcation".
- paddyforan 14y agoThanks! Fixed the typo. And I guess my point is, I've tested this. I can't seem to find any problems with it. But I do not have unit tests for the larger routing algorithm, only the routing within a Node. In my tests, it always worked out, but I would put my confidence in this at about 70%. In essence, I was ready to release this software to the Go community, have them kick it around a bit, see what came of it. I was not expecting a HN frontpage. So now I'm slightly panicked, and hoping to God that people don't think I'm an idiot for the rest of forever.
- Intermernet 14y agoCalm those nerves :-) Now, you have the legions of HN to help. One of the joys of open source is that through building software, you also get to build communities. I have a feeling you'll be getting a fair bit of help on this project. It's generic enough to help in any number of applications and i'm sure many HN readers are currently trying to work out if they can apply this to any of their current projects. Best of luck, and thanks for adding another great instrument to Go's repertoire!
- JulianMorrison 14y agoHow are you planning to implement pub-sub on top of it?
- paddyforan 14y agoI'll be using the Scribe algorithm, as defined by the authors of the Pastry algorithm: http://en.wikipedia.org/wiki/Pastry_(DHT)#SCRIBE http://en.wikipedia.org/wiki/Pastry_(DHT)#SCRIBE The basic gist of it is similar to a phone tree. You route a message subscribing to a topic, basing the message ID on the topic name. As the message routes through the network, each Node stores the information about who is subscribed. When an event happens, that information is passed back through to the subscribed nodes. I may have to tweak it a little, as I did Pastry, but I'm pretty sure the same basic concept will work for my needs.
- simonw 14y agoWhy didn't you want to use redis? If you're going to have any component that's a single point of failure, redis is a pretty good bet for it.
- paddyforan 14y agoThat it is. I love redis. I just really didn't want to have a single point of failure. Really badly. Pastry has no single point of failure. [edit] Realised this thread isn't actually all about me. Oops! Sorry for answering a question not directed at me.