Deep understand of Sentinel + Autotask + Relay (Quota, fallback, error handling, etc)

I want to understand deeply how the ecosystem build by Sentinel + Autotask with Relay works, similar to what was built at this workshop: https://blog.openzeppelin.com/workshop-recap-automate-smart-contract-workflows/

:computer: Environment
Sentinel listening to one contract.
Sentinel forwarding notifications to Autotask
Autotask using Relay to mint another contract

:memo:Details
I'm planning to use the env described above to monitor all the transactions and make my solution possible (otherwise I will need to build the same open zeppelin solution manually), but I'm worried about quota problems, fallbacks, etc.

For my use case, I must process every single transaction. (User will spend money in one contract to mint into another one (different network). Because of that, I have some questions:

  1. What will happen when I hit the Autotask quota?
    I notice that the Autotask start to return 402, but how does Sentinel handle this 402? Will it retry in the future? Do I need to build something manually? Will the event be lost?

  2. Looking at the workshop code, they were storing the already delivered NFT to check in every execution, but the Autotask has also a quota for storage. What will happens in that scenario? Also, why this check was important, the Sentinel could notify the same event twice?

  3. Assuming that I have a huge number of transactions to listen to, but in a non-linear way (maybe 400 requests in an hour, but just 10 in another one) what is your suggestion to handle this scenario? Just ask the support for more quota or there is another way that I'm missing?

  4. I notice that Relay has also a quota. I'm assuming that if every Autotask execution uses the Relay to sign a transaction, I don't need to worry about it, right? (Both quotas are the same)

Hey @OelzeWidllife

Thanks for using Defender! Responses to your questions below...

  1. If the autotask quota is hit it will not retry in the future. The “event” can be considered lost.

  2. They are checking if the NFT was already sent to the user because someone can trade on uniswap more than once, and it was a limit of 1 NFT per user. If the key/value store quota is hit the autotask will terminate execution and error out

  3. Contacting support to increase the quota is probably the way to go here.

  4. Yes, signing would require a relayer, so if the quotas are identical, then you should be compliant with both quotas in being compliant with one of them.

Please reach out if there's anything else we can help with