we want to use a single relay to cover gas costs on our dapp for all users. What are the concurrency considerations we need to keep in mind when doing this? Would 1 relay be enough? What happens when two users execute a tx and it hits the relay at the same time? Are there any race conditions we need to be aware of where the relay tx would fail?
Hi @EPY,
Thanks for reaching out!
Relayers are able to handle concurrent transactions since nonces are atomically allocated. One thing to bear in mind is there are limits around transactions/hour. If you are on the free tier, that limit is 120 transactions/hour across all relayers in your account. There is also a limit to the number of relayers (5 on the free tier).
Please let us know if you have any other questions.
One other limit re: concurrency is we do rate limit requests as follows:
- Send Transaction: 10 requests/second
- Replace Transaction: 10 requests/second
- All API endpoints combined: 100 requests/second