GlosarioTecnología

Governor limits

Término 124 de 314 · Tecnología

En una frase

Los governor limits son los límites de ejecución que Salesforce impone a cada transacción (consultas, registros procesados, llamadas API, CPU) para proteger los recursos compartidos de su arquitectura multitenant, donde muchos clientes corren sobre la misma infraestructura.

Definición

Los governor limits son los topes que Salesforce aplica a cada transacción de código y automatización para evitar que un proceso consuma más recursos de los que le corresponden. Como Salesforce es una plataforma multitenant (muchas organizaciones comparten la misma infraestructura), estos límites garantizan que el código de una empresa nunca degrade la performance de las demás. Son una de las primeras restricciones con las que se topa quien programa en Salesforce.

A diferencia de un servidor propio, donde podés consumir CPU o memoria hasta agotar la máquina, en Salesforce cada transacción arranca con un presupuesto fijo de recursos. Si tu código pasa ese presupuesto (por ejemplo, más de 100 consultas SOQL síncronas o más de 150 operaciones DML), la plataforma corta la ejecución y lanza una excepción que no se puede atrapar para ignorarla. El límite no es opcional ni configurable: es parte del contrato de la plataforma.

Por eso, en el mundo Salesforce, escribir buen código no es solo que funcione, sino que funcione dentro de los límites incluso cuando el volumen de datos crece. Diseñar pensando en governor limits es la diferencia entre una automatización que aguanta diez mil registros y una que explota al primer lote grande.

Por qué existen los governor limits

Salesforce no te da un servidor dedicado: tu organización vive sobre una infraestructura que comparte con miles de otros clientes. Ese modelo multitenant es lo que hace a la plataforma económica y escalable, pero introduce un riesgo: si una sola empresa pudiera ejecutar una consulta gigante o un bucle infinito, frenaría a todos los demás. Los governor limits son el mecanismo que reparte los recursos de forma justa. En esencia, son un presupuesto por transacción: cada vez que se ejecuta tu código (un trigger, un flujo, una llamada API), Salesforce mide cuántas consultas, registros, llamadas externas y tiempo de CPU consumís, y corta apenas superás el tope.

Los límites más importantes

Aunque hay decenas, en la práctica la mayoría de los problemas vienen de un puñado de límites por transacción. Estos son los que más se cruzan en proyectos reales:

  • Consultas SOQL: 100 en contexto síncrono, 200 en asíncrono. Cada vez que pedís datos a la base contás una consulta.
  • Registros recuperados por SOQL: hasta 50.000 en total dentro de la transacción.
  • Operaciones DML: 150 sentencias (insert, update, delete) por transacción.
  • Registros procesados por DML: 10.000 en total.
  • Tiempo de CPU: 10.000 milisegundos en síncrono (lo que más sorprende, porque la lógica pesada lo agota rápido).
  • Llamadas a servicios externos (callouts): 100 por transacción, con un tope de tiempo total.
  • Heap (memoria): 6 MB en síncrono, 12 MB en asíncrono.

Bulkification: la regla de oro

El error más común de quien recién programa en Salesforce es escribir código que hace una consulta o un DML dentro de un bucle. Si procesás 200 registros y consultás la base una vez por cada uno, llegás a 200 consultas y te pasás del límite de 100. La solución, llamada bulkification, es sacar las consultas y los DML fuera del bucle: una sola consulta que trae todo lo que necesitás de golpe, y una sola operación DML que escribe la lista completa. Bien diseñado, un trigger que procesa 1 registro o 200 consume exactamente la misma cantidad de consultas. Esta práctica no es opcional: es la forma correcta de escribir en la plataforma.

Ejemplo concreto (Argentina)

Pensá en una distribuidora de Consumo Masivo que importa 5.000 pedidos por noche desde su sistema legacy a Salesforce. Un trigger sobre Pedido recalcula el saldo de la cuenta del cliente cada vez que entra un registro. Si ese trigger consulta la cuenta uno por uno, al procesar el lote de 5.000 supera el límite de consultas y la integración entera falla a las 3 de la mañana, dejando datos a medias. Reescrito con bulkification (una consulta que trae todas las cuentas afectadas y un único update masivo), el mismo proceso corre sin acercarse a ningún tope. Es el caso típico donde la diferencia entre saber y no saber de governor limits cuesta una madrugada de incidentes.

Errores comunes

  • Hacer SOQL o DML dentro de un for (la causa número uno de límites superados).
  • Probar con 1 o 2 registros y asumir que escala: los límites solo aparecen con volumen.
  • Cadenas de automatizaciones (un flujo que dispara un trigger que dispara otro flujo) que suman CPU y DML sin que nadie las vea juntas.
  • Recursión sin control: un update que se dispara a sí mismo y consume el presupuesto.

Governor limits vs multitenant

La gente suele confundir el límite con la arquitectura que lo justifica. No son lo mismo:

AspectoGovernor limitsMultitenant
Qué esTopes concretos por transacciónModelo donde muchos clientes comparten infraestructura
NaturalezaRestricción que ves al programarDiseño de fondo de la plataforma
Dónde apareceErrores de ejecución en Apex, flujos, APITransparente para el usuario final
Para qué sirveGarantizar el reparto justo de recursosHacer la plataforma escalable y económica

En resumen, multitenant es la causa y governor limits es la consecuencia: como compartís infraestructura, la plataforma necesita límites para que el reparto sea justo. Entenderlo cambia la forma de diseñar: en Salesforce no programás contra una máquina, programás contra un presupuesto, y respetarlo es la base de toda integración o automatización que aspire a aguantar volumen real.

Compartir
Preguntas frecuentes

Preguntas frecuentes sobre Governor limits

¿Qué son los governor limits en Salesforce?

Los governor limits son los topes que Salesforce impone a cada transacción de código y automatización: cantidad de consultas a la base, registros procesados, operaciones de escritura, llamadas a servicios externos, tiempo de CPU y memoria. Como Salesforce es una plataforma multitenant, donde muchas empresas comparten la misma infraestructura, estos límites garantizan que el código de un cliente nunca consuma recursos de más y degrade la performance de los demás. Son obligatorios y no configurables.

¿Por qué Salesforce tiene governor limits?

Porque su arquitectura es multitenant: tu organización corre sobre servidores compartidos con miles de otros clientes, no sobre una máquina dedicada. Sin límites, una sola empresa podría ejecutar una consulta enorme o un bucle descontrolado y frenar a todas las demás. Los governor limits reparten los recursos de forma justa al darle a cada transacción un presupuesto fijo de consultas, escrituras, llamadas externas y CPU, cortando la ejecución apenas se supera.

¿Qué pasa si supero un governor limit?

Salesforce corta la ejecución de inmediato y lanza una excepción que no se puede atrapar para ignorarla, por ejemplo por exceder las 100 consultas SOQL o las 150 operaciones DML síncronas. La transacción se revierte completa, así que ningún cambio parcial queda guardado. En una integración nocturna esto suele dejar el proceso fallido y datos a medio sincronizar, por eso conviene diseñar y probar con volúmenes realistas antes de poner el código en producción.

¿Cómo se evitan los problemas con governor limits?

La técnica principal se llama bulkification: nunca hacer consultas ni operaciones de escritura dentro de un bucle. En vez de consultar la base una vez por registro, se hace una sola consulta que trae todo lo necesario y una sola escritura masiva con la lista completa. Bien hecho, el código consume los mismos recursos procesando 1 registro o 200. También ayuda probar con lotes grandes, controlar la recursión y revisar las cadenas de automatizaciones que suman CPU y escrituras.

¿Los governor limits aplican también a flujos y a la API?

Sí. Aunque suelen asociarse al código Apex, los governor limits aplican a toda la plataforma: los flujos (Flow), los procesos automatizados y las llamadas a la API también consumen el mismo presupuesto de consultas, escrituras y CPU dentro de su transacción. De hecho, un caso frecuente de límite superado son las cadenas mixtas donde un flujo dispara un trigger que dispara otro flujo, sumando consumo que nadie midió al verlas por separado.

Herramienta gratuita
Champions

Generador de Business Case

Tu caso de negocio con tus números, listo para el directorio.

Abrir la herramienta

Lo llevamos a tu Salesforce

Implementación, integración y soporte de Salesforce para empresas de LatAm, con foco en que el equipo lo use de verdad y no vuelva al Excel. Contanos en qué punto está tu org.

El glosario completo (más de 290 definiciones de IA, Salesforce y datos) en un PDF con hipervínculos.

Seguí explorando

Términos relacionados

Del glosario

Preguntas relacionadas

Lo resolvemos con

Salesforce

Implementación, integración y soporte de Salesforce para empresas de LatAm, con foco en la adopción real del equipo.

Así lo resuelve Salesforce
La suite completa

Ahora que sabés qué es, mirá cómo se resuelve

Cinco productos de IA que trabajan sobre el CRM que ya usás. No reemplazan tu sistema: le agregan la capa que hoy hacés a mano.