Any experience with step-functions? recommendation...
# help
a
Any experience with step-functions? recommendations, experiences?
a
We are using step functions but it's mainly used for a subminute ticker, as aws is not able to invoke functions under a minute with a scheduler. We had our own step function written to tick every second but when we moved to SST we replaced that with LambdaSubminute from SST. That being said, what is your use case?
a
Not sure what
LambdaSubminute
is, need to check it.
Nice.
s
I have used them a little. Look at the payload limit between steps to see if they fit your use case. They really shine when you use the error handling states (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html) Our biggest use case was dealing with 3rd parties while handling spiky e-commerce load; and when data in the 3rd party was only required to be eventually consistent (retry with exponential back-off util we receive acknowledgement).
a
Yeah also thinking to use it for 3rd party integrations.
r
@Simon Reilly - when you say "Our biggest use case was dealing with 3rd parties while handling spiky e-commerce load" does that mean you're using step functions for throttling? Are you able to share a rough idea of how that hangs together?
s
Sure, for asynchronous tasks first of all, not online transaction processing. We would use ErrorEquals retry to catch http errors from 3rd parties, and perform exponential backoff. We would have a happy flow through multiple 3rd parties, required to process in order. We had a default error catch to raise a zendesk ticket if we failed for other reasons.
Our other approach multi-tenant throttling was sqs FIFO queues, with message group identifier using the tenants unique identifier. So we could guarantee ordering, whilst maintaining independent throttling per tenant. Our lambdas were multi-tenant via SSM secret fetching at runtime as well.
r
Great, thank you, there's a fair amount to digest there, sparking some ideas, cheers