a very basic swf implementation.
Set limits on the number of workers allowed. Reuse slices for history and decisions.
Allow batch sending of sqs messages (not fully tested).
Fix some sqs requests to set the default domain.
move some debug logs in the swf code to only be on errors.
allow a decider to fail.
try stop the heartbeat timer before we reply a success/fail status.
move other swf debug statements into their error clauses.
setup decider and activity to use marshallers. Allow the heartbeat timer in activity to be configured.
set default domain in sqs delete message.
Have sqs.receiveMessage properly set attribute names.
Have it also use url.Values to do the encoding.
SQS:
catch panics in an activity, and mark them as failed.
only restart the heartbeat when we got a succesfull response.
SWF:
Allow the decider to set timers, and markers. Add a 'once' functionality using markers, so that logging things once in the workflow is easier.
Also try to catch panics in the decider. But don't add any new decisions when the panic occurs.
Add startWorkflowExecution.
use GetSecurityKeys when no keys are provided.
properly set the domain in ses.sendEmail
Have receive message get attributes. Its still a bit weird cause the SQS documentation says to use the '%s.member.%d' format... but if one item is used, they don't use that format... weird.
Allow the raw poll task to be extracted from the activity context. Also allow us to give up the context, without closing the activity.
decider got formated.. then unformated.. errrr.
Allow custom ids on activities.