Ellington
Important
The wiki docs are out of date!
You'll have to review the examples & code itself for now. I'll be working to bring the wiki docs current soon.
Named after Duke Ellington whose signature tune was "Take the 'A' Train". The song was written about New York City's A train.
Ellington is an architecture for modeling complex business processes.
Ellington brings discipline, organization, and modularity to a project.
The nomenclature is taken from New York's subway system. We've found that using consistent and cohesive physical metaphors helps people reason more clearly about the complexities of software. The subway analogy isn't perfect but gets pretty close.
Goals
- Provide a consistent nomenclature thats simple enough to be shared by engineering and the business team.
- Establish constraints which ensure complex projects are easy to manage, develop, and maintain.
Start Here
- Skim the intro slides on Speaker Deck.
- Review one of the example apps.
Lexicon
-
Conductor - A supervisor responsible for putting
passengers
on aroute
. - Passenger - The stateful context that will be riding the virtual subway.
-
Route - A collection of
lines
and theirconnections
. -
Line - A linear track that moves the
passenger
from point A to point B. - Station - A discreet chunk of business logic.
-
State - A status or disposition assigned to the
passenger
.
Note: We recommend Ellington for projects where a good understanding of the problem domain has been established. You might want to spike a solution to learn your project's requirements before using Ellington.
Run the demo
git clone git://github.com/hopsoft/ellington.git
cd ellington
bundle
bundle exec ruby examples/social_media/demo.rb
Review the demo project here.