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.
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:
| Aspecto | Governor limits | Multitenant |
|---|---|---|
| Qué es | Topes concretos por transacción | Modelo donde muchos clientes comparten infraestructura |
| Naturaleza | Restricción que ves al programar | Diseño de fondo de la plataforma |
| Dónde aparece | Errores de ejecución en Apex, flujos, API | Transparente para el usuario final |
| Para qué sirve | Garantizar el reparto justo de recursos | Hacer 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.
Preguntas frecuentes sobre Governor limits
¿Qué son los governor limits en Salesforce?
¿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?
¿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?
¿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?
¿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?
¿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.
Generador de Business Case
Tu caso de negocio con tus números, listo para el directorio.
Abrir la herramientaLo 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.
Términos relacionados
- MultitenantMultitenant es una arquitectura de software en la nube donde una sola instancia de la aplicación atiende a muchos clientes (tenants) a la vez, con sus datos aislados de forma lógica. Es el modelo base del SaaS y de Salesforce.
- ApexApex es el lenguaje de programación propietario de Salesforce, orientado a objetos y similar a Java, que corre en sus servidores. Permite agregar lógica de negocio personalizada (triggers, clases e integraciones) cuando las herramientas declarativas como Flow no alcanzan.
- SOQLSOQL (Salesforce Object Query Language) es el lenguaje de consultas de Salesforce para leer datos de sus objetos. Se parece a SQL pero solo consulta registros (no inserta ni borra) y respeta el modelo de datos y los permisos de la plataforma.
- Org (Salesforce)Una org (organización) de Salesforce es la instancia aislada y única donde vive todo lo de una empresa: sus datos, usuarios, configuración, código y personalizaciones. Es el contenedor lógico identificado por un Org ID propio dentro de la nube multitenant.
- HyperforceHyperforce es la arquitectura de infraestructura de Salesforce que corre su plataforma sobre nubes públicas mediante código en vez de hardware. Permite desplegar la plataforma por regiones y darle al cliente control sobre la residencia de datos según el país de su org.
- ISVEl ISV (Independent Software Vendor) es una empresa que construye software comercial sobre la plataforma de Salesforce y lo distribuye como paquete gestionado a través de AppExchange. El cliente lo instala en su propia org, donde corre nativo junto a las nubes que ya usa.
Preguntas relacionadas
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 SalesforceAhora 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.