Node.js Is For Middleware
Sure, HTTP is a first class citizen for Node.js, but so are raw sockets and files. Compare this to Rails, which was for building dynamic sites, or Django's original focus on building content management systems. And sure, often times Node.js is the middleware that connects a database and a website (both realtime and not), but it's also great at connecting all sorts of static and evented systems together.
The battle for middleware has always been configuration versus scripting. With products like Oracle Data Integrator, Apigee's API Exchange, and many others, they lean all of the way toward configuration. But if you've ever used one of these projects, learning the conventions of the configuration is akin to learning a new language, so you might as well have the control of programming.
Most enterprises have DBAs that learn these products inside out, and do little else. It's not fast, and it's not something anyone else in the organization can do.
At &yet, when we've often been asked to help large enterprises produce a modern API from a group of out-dated and disparate APIs, we can consistently out perform integration products in terms of development speed and quality because we have the ultimate middleware: Node.js.
With Node.js as a middleware, we can easily poll or listen to events, gather data, do translations, and deliver data to the other side due to the evented structure of Node.js and the passionate community producing quality libraries on npm.
Yes, Node.js is nice for building realtime webapps, but that's just because it's modern, event driven, middleware-scripting with the ability to work with APIs and protocols directly; it can solve so many more problems that face enterprises just as elegantly as it can produce realtime web applications.
Why learn a configuration tool or rely on a very narrow field of knowledge to bridge complicated interfaces? Just listen for events, look at data from each side, and script something together quickly.
If you'd like assistance in enabling your company with modern development and IT practices let us know!
You might also enjoy reading:
- Devops and security vodcast: code quality & helpful tools
- Re-using Backbone.js Models on the server with Node.js and Socket.io to build real-time apps
- Efficient, consistent client-side apps with optimistic concurrency & JSON patch: part II
- Yetis take on the Node Summit
- Realtime web app architecture with Thoonk: a series of tubes, not tables