Esta guía le ayudará a evaluar el enfoque correcto para sus requisitos de procesamiento asíncrono en Salesforce Platform. Explica cada enfoque, detallando los puntos fuertes y las limitaciones de cada uno. La mayoría de los enfoques están alineados con una función de producto, pero algunos enfoques utilizan múltiples funciones en coordinación. La guía incluye casos de uso para resaltar cuándo utilizar cada enfoque.
El procesamiento asíncrono proporciona dos beneficios principales para su arquitectura. En primer lugar, aumenta la escalabilidad porque los procesos asíncronos tienen límites reguladores más altos. En segundo lugar, las solicitudes asíncronas se ejecutan en sus propios hilos de modo que los usuarios puedan realizar otro trabajo mientras las tareas asíncronas se ejecutan en segundo plano.
Tenga en cuenta que esta guía se centra exclusivamente en la selección de una tecnología de procesamiento asíncrono dentro de Salesforce Platform. Otros recursos para ayudar a su proceso de decisión se enumeran en la sección Recursos.
| Salesforce Lightning Platform es una plataforma integral dirigida por la IA que unifica empleados, agentes de IA autónomos, datos de la empresa y aplicaciones en un único sistema de confianza para mejorar la productividad y la experiencia del cliente. Permite la creación de una "empresa agencia" conectando aplicaciones Customer 360, Data Cloud y Slack para la automatización de extremo a extremo. |
Este documento no cubre tecnologías en otros ecosistemas como MuleSoft, Informatica, Commerce Cloud, Tableau y Marketing Cloud.
- Antes de utilizar el procesamiento asíncrono, asegúrese de que sus casos de uso se ajustan al patrón. Los patrones asíncronos no tienen SLA, están sujetos a múltiples mecanismos reguladores, pueden tener límites de capacidad definidos basándose en licencias y pueden provocar retrasos de procesamiento debido a la naturaleza finita de los recursos asignados a infraestructura asíncrona dentro de Salesforce Platform. Tenga en cuenta estas limitaciones cuando utilice procesamiento asíncrono en escenarios donde un usuario requiere una respuesta del sistema antes de poder continuar con su trabajo.
- El procesamiento asíncrono con Salesforce no es una solución para necesidades de escala ilimitadas. Salesforce Platform no se amplía infinitamente y los patrones asíncronos están sujetos a limitaciones. El procesamiento asíncrono utiliza hilos, que contienen la información contextual que una CPU necesita para ejecutar una transmisión de instrucciones. Las cadenas pueden ejecutarse en paralelo. El número de hilos disponibles en cualquier CPU es limitado, de modo que la plataforma tiene mecanismos establecidos para utilizar sus hilos disponibles de la forma más eficiente posible. El mecanismo de control de flujo de la plataforma evita que las organizaciones consuman demasiados hilos y afecten negativamente a otras organizaciones. El algoritmo de uso justo de la plataforma también controla el número de hilos que una organización tiene disponibles para cada tipo de mensaje concreto.
- Tenga en cuenta eventos que pueden causar cargas extremas. Cuando diseñe procesos asíncronos, asegúrese de que pueden gestionar de forma predecible picos y pausas de carga de trabajo. Considere cómo gestiona su implementación eventos inesperados, como cortes de energía, y diseñe protecciones que mitiguen la pérdida de datos o la pérdida de funciones.
Esta tabla describe las herramientas disponibles para el procesamiento asíncrono con Salesforce. Consulte esta tabla para revisar las características principales de cada herramienta durante su proceso de toma de decisiones. Consulte Casos de uso y Puntos de decisión para obtener ayuda con la selección de las herramientas correctas para su arquitectura.
| Enfoque | Descripción | Habilidades requeridas | Licencias y límites |
|---|---|---|---|
| Apex colable | Se utiliza para procesos que implican operaciones de base de datos de larga ejecución o llamadas de servicio web externo. Apex en cola ofrece funciones como identificadores de trabajos, compatibilidad con tipos no primitivos y encadenamiento de trabajos. | Pro-código | El número de licencias puede aumentar los límites. |
| Lote Apex | Cree procesos complejos y de larga ejecución que implican millones de registros dividiendo su conjunto de registros y procesándolo en fragmentos gestionables. | Pro-código | El número de licencias puede aumentar los límites. |
| Apex programado | Ejecute Apex a una hora programada definida por una expresión cron. Aunque el acto de programar Apex mediante la expresión cron es un proceso asíncrono, el código subyacente se ejecuta de forma síncrona cuando se inicia el trabajo. | Pro-código | El número de licencias puede aumentar los límites. |
| Llamadas de continuación Apex | Ejecute llamadas desde métodos Apex ejecutándose en un contexto de transacción síncrona. | Pro-código | No |
| Ruta asíncrona (Flujos desencadenados por registros) | Ejecute una operación que desee ejecutar en su propio tiempo. Evite errores DML mixtos que se producen cuando actualiza un valor en un registro relacionado que no forma parte del registro que desencadenó un flujo. | Código bajo | El número y el tipo de licencias pueden aumentar los límites. |
| Ruta programada (flujos después de confirmar) | Ejecutar a una hora programada dinámicamente después de un evento desencadenante, como cuando se crea, se actualiza o se elimina un registro. | Código bajo | El número y el tipo de licencias pueden aumentar los límites. |
| Flujos programados | Ejecute un flujo en segundo plano a una hora especificada y con una frecuencia repetida (diaria, semanal o una vez) para realizar acciones en un lote de registros. | Código bajo | El número y el tipo de licencias pueden aumentar los límites. |
| Desencadenadores de eventos de plataforma | Acople Salesforce libremente con sistemas externos y comuníquese entre componentes asíncronos dentro de Salesforce Platform. | Código bajo + Pro-código | Se requiere una licencia complementaria para casos de uso de eventos de plataforma de gran volumen |
| Captura de datos | Capture y procese eventos de cambio de forma asíncrona después de confirmar la transacción de la base de datos. | Pro-código | Se requiere una licencia complementaria para ampliar la asignación por encima de la línea base. |
| API masiva | Inserte, actualice, altere, consulte o elimine muchos registros de forma asíncrona y procese los resultados más adelante. | Pro-código | Hay límites. |
| Acciones Lightning | Permita que las páginas Lightning interactúen con el servidor sin forzar a los usuarios a actualizar completamente la página. | Código bajo | No |
Esta tabla contiene una descripción general de puntos a tener en cuenta cuando decida qué herramienta asíncrona utilizar.
| Habilidades requeridas | Algunas de las herramientas descritas en esta guía requieren código, mientras que otras se pueden configurar de forma declarativa. Cuando considere sus opciones, piense en los conjuntos de habilidades que tienen los miembros de su equipo. Tenga en cuenta que incluso si los desarrolladores están disponibles para su implementación inicial (a través de un socio de implementación, por ejemplo), es posible que tenga que modificar sus soluciones en el futuro. Si su equipo de mantenimiento carece de desarrolladores, una opción de código bajo puede ajustarse mejor. |
| Tipo de límites de plataforma aplicados | Determine el tipo de límites que se aplican a la ejecución. Cuando diseñe sus soluciones, piense cuidadosamente en cómo el volumen y la frecuencia de las transacciones contarán en los límites reguladores para el enfoque elegido cada día. Calcule el número de ejecuciones que se producirán cada día. Asegúrese de que los valores calculados están dentro de los límites asociados con sus herramientas seleccionadas. |
| Latencia | Determine con qué rapidez estarán disponibles los resultados del procesamiento en la plataforma. Para algunos enfoques, los cambios serán casi inmediatos, mientras que para otros pueden ser minutos u horas. |
Cuando selecciona una herramienta para el procesamiento asíncrono, primero evalúe los requisitos de su organización y los recursos disponibles. Su objetivo es seleccionar la herramienta o herramientas que minimicen los costes de implementación y mantenimiento, pero que garanticen la capacidad de ampliación y minimicen su probabilidad de limitar las infracciones. Este objetivo depende de las consideraciones técnicas descritas anteriormente, así como de la composición de su equipo.
Considere un proceso de pedido asíncrono en Salesforce. Cuando se guarda un pedido, desencadena un mensaje a un sistema de gestión de almacén externo con instrucciones especiales sobre cómo embalar y enviar un artículo. El usuario que realiza el pedido no necesita una respuesta inmediata del sistema de gestión de almacenes, de modo que la solicitud se puede enviar de forma asíncrona. El procesamiento asíncrono permite al usuario continuar su trabajo sin esperar una respuesta.
Para este caso de uso, podría considerar implementar con Apex. Este enfoque solo funcionará si tiene desarrolladores Apex en su equipo que puedan mantener su solución de código pro. De lo contrario, un enfoque declarativo tiene más sentido. Además, tenga en cuenta que diferentes conjuntos de límites se aplican a diferentes herramientas.
Esta tabla enumera casos de uso comunes en la columna más a la izquierda, seguido de una descripción. La columna Primera opción proporciona el enfoque más habitual utilizado para satisfacer dicho caso de uso, junto con la justificación del enfoque Primera opción. Utilice esto como un punto de inicio en su análisis: el enfoque Primera opción puede tener limitaciones que no funcionarán para su caso de uso.
| Caso de uso | Descripción | Enfoque de primera opción | Justificación |
|---|---|---|---|
| Procesamiento por lotes de alto rendimiento | Cualquier automatización que debe procesar miles o millones de registros de forma eficiente | Apex por lotes | Apex por lotes proporciona API enriquecidas para la interfaz con la plataforma y para velocidad sin procesar. |
| Trabajo de limpieza de datos | Un trabajo que se ejecuta de forma rutinaria, o bajo demanda, que limpia datos. Algunos ejemplos incluyen la desduplicación, la verificación de direcciones o la consolidación de datos. | Apex por lotes | Apex por lotes proporciona API enriquecidas para la interfaz con la plataforma y para velocidad sin procesar. |
| Trabajo de acumulación nocturno | Trabajo que calcula datos de acumulación al final de un día hábil. | Apex por lotes | Apex por lotes proporciona API enriquecidas para la interfaz con la plataforma y para velocidad sin procesar. |
| Lógica desencadenada por registro | Ejecute lógica en respuesta a una actualización de registro. | Varía | Consulte nuestra guía de decisiones complementarias, Automatización de registros de eventos desencadenados. Incluye un árbol de decisiones para casos de uso asíncronos, incluyendo Apex en cola, Apex por lotes, Apex programado, Flujo programado, Flujos de ruta asíncronos y Captura de datos de cambios. |
| Actualizaciones en cascada a través de un gráfico de objeto | Permite que la acción de guardado de un usuario se complete rápidamente, aplazando la ejecución de actualizaciones en cascada a otros objetos de forma asíncrona. | Apex en cola | Apex en cola tiene potentes funciones de encadenamiento que permiten a la lógica dividir una cadena de actualizaciones en una serie de transacciones asíncronas. |
| Procesamiento programado específico de registro | Automatización en una fecha futura y dinámica específica del registro (por ejemplo, 3 días antes de una fecha de cierre). | Flujo con una ruta programada | Las rutas programadas proporcionan una fortaleza única a Flujo, ya que la plataforma gestiona automáticamente la programación, cancelación y reprogramación de estas rutas si cambian los datos del registro. |
| Invocación de múltiples servicios externos lentos en paralelo | Durante una ejecución síncrona, se invocan múltiples servicios externos en paralelo para optimizar el tiempo de ejecución general. | Llamadas de continuación Apex | Permitir que múltiples llamadas de ejecución lenta se ejecuten en paralelo minimiza el tiempo general para completar el trabajo. |
| Migración de datos de registros desde un sistema externo | Mueva grandes cantidades de registros a Salesforce Platform desde un sistema externo. Ya sea un proceso puntual o programado regularmente. | API masiva | Este es el enfoque más eficiente y fácil de limitar para la migración de datos. |
| Ejecutar lógica adicional en un sistema externo | Patrón de activación y olvido de notificar a un sistema externo de un evento en la plataforma, luego permitir que ese sistema procese el evento de forma asíncrona. | Eventos de plataforma o Captura de datos | Un modelo pub-sub funciona mejor aquí y permite al sistema externo procesar el evento cuando está listo. Consulte Arquitectura dirigida por eventos para obtener más detalles sobre este patrón. |
La tabla Casos de uso es una guía hacia el enfoque más adecuado para cada caso de uso. Sin embargo, tendrá que validar lo bien que se ajusta la tecnología First Choice a las necesidades específicas de su caso de uso. En particular, determine si el enfoque elegido puede cumplir los límites reguladores para su organización.
Una vez que haya identificado un enfoque candidato para su caso de uso, la Guía de fundamentos de procesamiento asíncrono puede ayudarle a investigar completamente la solución.
Estos recursos adicionales pueden ayudar con su proceso de decisión:
- Profundice en cada una de las tecnologías asíncronas de plataforma: Fundamentos de procesamiento asíncrono
- Selección entre Apex y Flow para desencadenadores de registros: Automatización de eventos desencadenados por registros
- Información sobre patrones de integración asíncronos: Arquitectura dirigida por eventos