Let's say you have a server process which processes one request at a time. Your site is becoming increasingly popular, and this one process is no longer able to handle all of your inbound connections. However, you notice that your box's load number is low.

So you start thinking about how to handle more requests. You could rewrite your server to use threads, but threads are a pain to program against (and maybe you're writing in Python or Ruby where you don't have true threads anyway). You could rewrite your server to be event-driven, but that'd require a ton of effort, and it wouldn't help you go beyond one core. So instead, you decide to just run multiple copies of your server process.

Enter Einhorn. Einhorn makes it easy to run (and keep alive) multiple copies of a single long-lived process. If that process is a server listening on some socket, Einhorn will open the socket in the master process so that it's shared among the workers.

Einhorn is designed to be compatible with arbitrary languages and frameworks, requiring minimal modification of your application. Einhorn is simple to configure and run.

Code Quality Rank: L4
Monthly Downloads: 109,870
Programming language: Ruby
License: MIT License
Tags: DevOps Tools    

Einhorn alternatives and related gems

Based on the "DevOps Tools" category

Do you think we are missing an alternative of Einhorn or a related project?

Add another 'DevOps Tools' Gem

Einhorn Recommendations

There are no recommendations yet. Be the first to promote Einhorn!

Have you used Einhorn? Share your experience. Write a short recommendation and Einhorn, you and your project will be promoted on Awesome Ruby.
Recommend Einhorn

Recently added Einhorn resources

Do you know of a usefull tutorial, book or news relevant to Einhorn?
Be the first to add one!