Live data from Hacker News

Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

github.com

11–19 of 19 posts

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#11

> Those interactions are held in the queue only as long as the server needs before dequeuing. How sure are you that this invariant holds? Under what conditions do you expect it to fail? Clearly this is a fairly new project. 148 commits. No tests, benchmarks, or specifications. Keep at it. :)

I too think this is a bit premature, especially when I see placeholder code like this [1]. I'd also mention the redis dependency somewhere, IMO I shouldn't have to go all the way here [2] to find about it.

Somewhat less important feedback:

- I want my libraries to be quiet; currently there is a lot going out to stdout. I see you already depend on debug, why not use it some more? (somewhat related: are the emojis really necessary?)

- IMO libraries shouldn't listen for uncaughtException. Libraries don't have enough context, or even the guarantee these errors belong to said library.

- require all your deps at the top; I'd like to pay that cost upfront when I start the process rather than after calling a function, potentially in the middle of doing something.

- only use backticks if you are actually doing variable interpolation.

[1] https://github.com/team-emt/razorframe/blob/master/lib/Razor...

[2] https://github.com/team-emt/razorframe/blob/master/lib/Razor...

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#13
"real-time apps at scale" and socket.io ? I don't think so. If you want to compare socket.io with something that works on scale look at uWebSockets[1] which is around 50 times faster and lightweight than socket.io is.

https://github.com/uWebSockets/uWebSockets

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#14
Why should anyone use this, instead of just using a Redis client, the `cluster` module, and a WebSocket server directly? It's only 251 lines of code as of writing, which is partly spent on trivia such as a linked list implementation, a string hashing function, and some console messages. There is a whopping total of 23 lines of test code for the linked list implementation.

Also, did you really hardcode credentials to some hosted Redis instance somewhere? https://github.com/team-emt/razorframe/blob/e35004f7f2915275... (I'd rewrite git history if I were you)

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#15
post #14

Why should anyone use this, instead of just using a Redis client, the `cluster` module, and a WebSocket server directly? It's only 251 lines of code as of writing, which is partly spent on trivia such as a linked list implementation, a string hashing function, and some console messages. There is a whopping total of 23 lines of test code for the linked list implementation. Also, did you really hardcode credentials to…

Hey this is Michael, one of the co-creators of Razorframe. We're currently hosting a redis server for devs to use during the prototyping phase. Those who are moving into production will need to host their own, but we're happy to share with the community. We're adding information to our documentation to this effect. Great catch and thanks for reviewing our code!

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#16
post #13

"real-time apps at scale" and socket.io ? I don't think so. If you want to compare socket.io with something that works on scale look at uWebSockets[1] which is around 50 times faster and lightweight than socket.io is. https://github.com/uWebSockets/uWebSockets

Whoa--was unaware of this gem. Thx

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#17
post #15
post #14

Why should anyone use this, instead of just using a Redis client, the `cluster` module, and a WebSocket server directly? It's only 251 lines of code as of writing, which is partly spent on trivia such as a linked list implementation, a string hashing function, and some console messages. There is a whopping total of 23 lines of test code for the linked list implementation. Also, did you really hardcode credentials to…

Hey this is Michael, one of the co-creators of Razorframe. We're currently hosting a redis server for devs to use during the prototyping phase. Those who are moving into production will need to host their own, but we're happy to share with the community. We're adding information to our documentation to this effect. Great catch and thanks for reviewing our code!

Ahem. https://github.com/team-emt/rz_demo/blob/master/server/datab...

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#18

Congrats on the launch! Glad to see more people working on these kinds of problems. As someone who hasn't built one of these systems before... What does Razorfish give you that running Socket.io as a separate microservice that talks to your existing API service over an existing message queue doesn't? Is it for people with architectures that don't have an existing queuing or API services already? Or does it handle sha…

Hey Ian - this is Edward, one of the co-creators of Razorframe. Thanks for your thought provoking question! Developers can certainly utilize the architecture you've described to great effect, but our solution aims to deliver a lightweight option that integrates technologies that don't normally play nice (Socket.io and clustered Node instances) but can have awesome scaling potential when they do.

By keeping all the features within a familiar environment in Node, we've experienced that development time was vastly reduced in a potential project that expected a high volume of Websocket communications. For example, the incorporation of an in-memory queue reduces the need for developers to incorporate an external piece of tech (and any new language adoption) into their Node.js projects

Re: Show HN: Razorframe – A Node.js module for empowering real-time apps at scale

#19
post #15

Earlier quoted context omitted.

Hey this is Michael, one of the co-creators of Razorframe. We're currently hosting a redis server for devs to use during the prototyping phase. Those who are moving into production will need to host their own, but we're happy to share with the community. We're adding information to our documentation to this effect. Great catch and thanks for reviewing our code!

Ahem. https://github.com/team-emt/rz_demo/blob/master/server/datab...

Yeah. https://github.com/team-emt/rz_demo/commit/59ee149a50f25d13f...

Rewrite history, as @sapeien suggested.

Post reply on HN