CARVIEW |
auser / beehive
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
click here to add a description
click here to add a homepage
Pledgie Donations
Once activated, we'll place the following badge in your repository's detail box:
Honeycombs of applications — Read more

tree f3467a19c0026f9b757f6749d5f4cb3ff0fa086e
parent 7cea40844062ba326d4d681c4f7c29e640b261de
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Wed Sep 09 02:38:28 -0700 2009 | Updating basic gem [Ari Lerner] |
![]() |
LICENSE | Thu Sep 10 15:34:35 -0700 2009 | Moved to gem format [Ari Lerner] |
![]() |
README.markdown | Mon Dec 21 20:45:43 -0800 2009 | Updated README with one more note [Ari Lerner] |
![]() |
Rakefile | Fri Nov 20 15:12:20 -0800 2009 | Added pkging for erlang to the Rake task [Ari Lerner] |
![]() |
TODO | Mon Jan 11 09:43:11 -0800 2010 | A wee bit more logging [Ari Lerner] |
![]() |
bin/ | Thu Dec 24 14:57:29 -0800 2009 | Updated bee, instead of node in apiary [Ari Lerner] |
![]() |
config/ | Mon Jan 11 07:29:44 -0800 2010 | Fixed starting of apps io_lib details [Ari Lerner] |
![]() |
lib/ | Tue Jan 12 16:02:26 -0800 2010 | Added stop command to queen [Ari Lerner] |
![]() |
test/ | Mon Jan 04 19:33:05 -0800 2010 | Added test delete [Ari Lerner] |
Beehive
What is Beehive?
Beehive is an application-level, service as a service framework. It makes it easy to deploy an application into a multi-tenant environment, such as the clouds.
How it works
The incredibly basic architecture diagram of beehive looks like:
Distributed Routing layer
----------------------------
| | |
Backend Backend Backend
| | |
Storage Storage Storage
----------------------------
The distributed routing layer, written in erlang uses Mnesia, the distributed database management system intelligently routes requests across the bees. The router currently can handle http requests. Because Beehive was written with the intention of being extensible it can be extensible to other protocols.
It handles pending connections seamlessly and allows for streaming connections. It also keeps track of statistical data available through a web interface. The router itself has a RESTful interface for adding bees, which don't even need to sit inside the Beehive network. This can be useful for putting the router in front of a personal cluster (such as Eucalyptus) and expanding to the cloud environment (such as EC2) without having to change a line of code.
Beehive keeps track of the available bees for the known applications.
Beehive has an event system that allows for notifications along the system in a nonblocking manner. This way system events, statistic gathering log events can all be handled without affecting the performance of the router, which is tuned for speed.
For more information about each particular part of the project, there are READMEs in each of the appropriate directories.
Thanks
- Mad props for the super smart folks at Heroku for their sweet architecture ideas and for providing such a rad interface and an unmatched user experience.
- AT&T R&D for their support of the project
Note on Patches/Pull Requests
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request. Bonus points for topic branches.
Copyright
Copyright (c) 2009 Ari Lerner. See LICENSE for details.