Aug 25, 2017 · 1 min read
Hey Chris,
Good shout, I think SFN could work in a lot of cases — it’s better than SNS in that you have more control over retries, so it’s better at recovering from errors. Though it still doesn’t help with amortizing those spikes in the first place, which might be important in some cases.
If the downstream system is a shared resource (eg. a shared database cos you have not migrated your whole application to microservices where each service owns its own data) then the ability to amortize spikes with Kinesis/DynamoDB streams become handy : one service seeing a spike in traffic can’t cause cascade failures by passing along those spikes and taking down the shared resource.
