We are launching new enhancements to the Forge product events system as an Early Access Program (“EAP”) to collect your feedback and ensure that this functionality is the best that it can be.
Product events are generated when users and apps perform actions in Atlassian products. Forge apps can subscribe to a set of event types and then react to them by declaring an event trigger module in their app manifest. Apps may rely on product events to provide a rich experience to end users. If an app “misses” processing an event, it could degrade the experience for those users.
Currently, Forge guarantees “at least once” invocation for each event that has been subscribed to, but there is currently no way for an app to request a retry of an event due to temporary errors (for example, rate limiting from the Jira product API). The inability for apps to react to these situations means that apps cannot ensure that every event that is subscribed to is processed successfully.
Our EAP introduces new mechanics for developers to ensure that individual product events are processed successfully. Our EAP includes two primary features:
Forge apps can request the platform to retry the processing of an event by returning an
InvocationErrorfrom their event trigger function.
The Forge platform will automatically retry events that fail due to platform processing errors (eg. out of memory errors, function time outs and rate limiting errors) - information on the retry status will be available via new
retryReasonfields in the event payload (these fields are also present for retries requested by the app).
Additional reference documentation is available to EAP participants.
Access to this EAP is controlled via a feature flag that is set per installation. If you would like to test out this feature, please reply to this topic with the name of your test site where you would like the feature to be enabled.
If you do not wish to share your site name in a public forum, you may also message it to me privately here on the Atlassian Developer Community.
I look forward to receiving any feedback on whether or not this feature is useful for you, what could be improved and what other areas of investment you would like to see in Forge’s event processing systems.
Thanks for your time, and happy Forging!