Requirements:
- Be restartable without denying or prematurely closing requests (unicorn's
SIGUSR2
being the "gold standard") - Log information about requests in logstash compatiable JSON, including request path, request time & status code. Optionally should include request parameters, content length, content type & time spent in DB, views, external services
- Report exceptions to Rollbar & not die if an exception is encountered
- Connect to external resources via environment variables, optionally also via command line flags (cf 12factor app)
- Allow for automatic destruction/creation of database tables in tests
- Allow for programmatic migration of database tables in production (standard:
rake db:migrate
) - Require no filesystem resources other than its own binary (eg, no
db.yml
ormigrations
directory)