Show HN: Razorframe – A Node.js module for empowering real-time apps at scale
github.com
github.com
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)
Rewrite history, as @sapeien suggested.
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. :)
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...
Our team set out to deliver on pushing the impact of real-time web through maximizing backend resources provided by multi-core server systems. By allowing your Node.js server to run on multiple threads and ensuring data consistency through an evented queueing system, Razorframe makes your application’s backend more resilient and performant under duress.
We'd love to get some feedback on Razorframe and ways in which we can make it a better solution for your next Node.js project. Feel free to check us out on GitHub!
Thank you!
Razorframe, on the other hand, is an open-source project that addresses 2 of the main trends we see in modern web applications: real-time client UIs and flexible server-side scaling. We built a Node module that you can bring into your server-side code to quickly get up and running with websockets (via socket.io) and Node clusters in order to accomplish both.
Check us out on GitHub and let us know what you think:)
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 sharding the Socket.io part easily which usually has to be vertically scaled?
(Sorry if these questions don't make sense, I haven't dug into my requirements for these things yet but I know they're coming up!)
I think a very clear explanation of that would help me (and maybe others) understand its value and how hard it would be to roll your own here.
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