There are three limits related to methods annotated with the ``++@future++`` keyword:
* There is a maximum number of ``++@future++`` calls allowed per transaction.
* There is a maximum number of ``++@future++`` calls allowed per organization and per a 24-hour period.
* Salesforce protects its infrastructure from organizations calling too many ``++@future++`` methods: if more than 2000 ``++@future++`` requests are queued, any additional request https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_invoking_future_methods.htm[will be delayed].
Thus it is a best practice to avoid calling ``++@future++`` methods in loops and instead call it once with all the necessary data.
See https://developer.salesforce.com/docs/atlas.en-us.222.0.apexcode.meta/apexcode/apex_gov_limits.htm[Execution Governors and Limits] for the exact number of ``++@future++`` calls allowed in each context.
This rule raises an issue when a method annotated with the ``++@future++`` keyword is called in a loop.