Web::Machine provides a RESTful web framework modeled as a state machine.
You define one or more resource classes. Each resource represents a single
RESTful URI end point, such as a user, an email, etc. The resource class can
also be the target for POST requests to create a new user, email, etc.

Each resource is a state machine, and each request for a resource is handled by
running the request through that state machine.

Web::Machine is built on top of Plack, but it handles the full request and
response cycle.

See also: https://github.com/sartak/webmachine-perl
