DEV Community

Cover image for Why Choose Actionhero
Evan Tahler
Evan Tahler

Posted on

3 2

Why Choose Actionhero

or: Actionhero is the Node.js server for when your project grows up

It’s been over 7 years since I started on Actionhero, a Node.js server, and I’m very proud of how far we’ve come. We’ve got over 2,000 stars on GitHub and an active Slack community. We are used by many large companies in production, and are often cited by many publications as one of the better Node.JS frameworks. We are even approved by the US Department of Veteran’s Affairs for use in critical health-care systems.

Until now, I’ve taken a very soft stance on “why” Actionhero might be better than any other server framework/tool for your project, as every project is different. Maybe all of your project’s goals really would be met using only Express, and all you need is a JSON-speaking REST API server. That said, every project I’ve worked on always needed… more.

Along with the other Actionhero core-contributors, I’ve decided to publish this list of why you might choose to use Actionhero in a mature, enterprise environment.

Actionhero understands that modern applications speak more than HTTP.

Of course Actionhero features a robust RESTful router and HTTP server. But that is not enough any more is it? You probably also want websocket support, right? You also want to share session across HTTP and WS connections, and you want to be able to reuse your code across both. The Actions in ActionHero are agnostic of the communications protocol your clients are speaking, and you can reuse them. Support for all of this is included, right out-of-the-box.

Actionhero can coordinate with its peers when deployed.

Actionhero is “Cluster Aware”. This means that ActionHero is built from the ground-up to run in parallel across multiple machines at once. Nodes can speak to each other both passively (via a shared cache and job-queues; included) and actively with direct RPC communication.
Actionhero knows that background tasks are always required.
Sending your client a “welcome” email doesn’t belong in your web thread. Neither does processing anything else in the background. Actionhero treats background jobs as first class citizens, and any part of your API can enqueue them. Actionhero runs job workers in the proper Node.js way: event-based and many at a time.

Actionhero provides all the help you need, then gets out of the way.

Actionhero proposes a standard project layout, including testing and initializers. Actionhero has a REPL and generators to get you up-and-running quickly. Actionhero supports localization and test-driven development. After that… you can do anything you want!

Mature Operations for a Mature business.

Actionhero supports 0-downtime deployments, process signaling, and more. You can be sure that your DevOps team will find running Actionhero pleasant and clear.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay