A simple service layer pattern for plain old Ruby objects.
Yeah, yeah, yeah. Keep yer controllers skinny they always tell us. This is a lot easier to say than do in many cases. Our controllers are supposed to create that user, send them an invitation email, block them from access until they authenticate their email address, etc.
Porch allows you to move the code into a series of steps that execute simple methods on itself or within simple PORO objects.
This was inspired by LightService and the middleware chain by Sidekiq.