What's the current status with Bolt on handling event acknowledgements with Faas (Firebase Cloud Functions)? I contacted Slack support and was recommended these threads which I read, but they didn't seem to be fully up to date.
https://github.com/slackapi/bolt-js/issues/361
https://github.com/slackapi/bolt-js/issues/395
https://github.com/slackapi/bolt-js/issues/329
We're having the issue where we're getting some events sent to us three times, like a user adding a reaction in a channel, because it takes our function some time to spin up when it hasn't been active for a bit. That's really the only problem we've experienced with our FaaS so far. What's currently your recommendation on handling this? In other cases, we're acknowledging immediately and then handling the logic afterwards. If there's a way for us to use manual ack() for events as well, that'd be great. Thanks!
x in one of the [ ])x in each of the [ ])Hello @GuineaPigApp thanks for taking the time to write in here!
What's currently your recommendation on handling this? In other cases, we're acknowledging immediately and then handling the logic afterwards. If there's a way for us to use manual ack() for events as well, that'd be great. Thanks!
We don't have any updates after the issue #361. As I mentioned in the issue, the safest way is to have two functions:
ack() to the Slack API server and enqueues the payload for an internal async function (or directly invoking another function works).ack()In Bolt for Python, we've implemented a useful feature for easily invoking another functions using the same function (Google Cloud Functions is not yet supported, though) but we don't have plans to implement the similar in Bolt for JS in the short term. https://slack.dev/bolt-python/concepts#lazy-listeners
As I mentioned in #361, automatic ack() does not work as long as your app runs on FaaS environments.
Hi @seratch, thanks a ton for the quick response! All right, then we'll probably solve it as you described with two functions. That should work. Thanks again, love using Bolt! :)
Most helpful comment
Hi @seratch, thanks a ton for the quick response! All right, then we'll probably solve it as you described with two functions. That should work. Thanks again, love using Bolt! :)