Salesforce Functions: un futuro escalable y sin límites

En la actualidad, numerosas soluciones en la nube emplean el concepto de function o lambda. Salesforce no podía ser menos, y, en octubre del año 2021, ha liberado esta funcionalidad en su plataforma, lista para que todo el mundo pueda aprovechar su potencial. Con ella, se pueden construir aplicaciones potentes de manera muy sencilla, flexible y escalable.

Índice:

¿Qué son las Salesforce Functions?

Las Salesforce functions son aplicaciones serverless escalables que responden a eventos y, por las que, generalmente, sólo pagas por el tiempo que dure la ejecución, también conocido como pago por uso. En esencia, son programas con una funcionalidad muy acotada, que les permite ser muy eficientes. En la actualidad, se desconoce aún si este pago por uso será ofrecido por Salesforce, o estará condicionado por el licenciamiento.

Java Node Ts

¿Qué significa serverless?

Serverless no significa que estas aplicaciones no necesiten un servidor para ejecutarse, sino que no requieren de un mantenimiento de la infraestructura que hay por debajo, pudiendo centrarse el desarrollador sólo en implementar la funcionalidad. Esto facilita el proceso de diseño y permite obtener resultados de manera mucho más rápida. Además, el no tener que mantener infraestructuras tiene ventajas adicionales, como evitar asumir gastos ante la rotura y el mantenimiento de las mismas.

¿Y un evento?

Un evento no es más que un suceso, imprevisto o programado, desencadenado por un sistema o proceso al que otros se pueden suscribir. Las functions están preparadas para detectar estos sucesos, que pueden ser desde llamadas de otros sistemas, hasta temporizadores que programen su ejecución.

El Santo Grial del desarrollador, la escalabilidad

Escalable es la definición que le damos los informáticos a la capacidad que tiene una aplicación o servicio de mantener su operatividad intacta ante un aumento de demanda de usuarios o peticiones. Las functions están preparadas para, automáticamente, recibir más recursos computacionales, (como memoria del servidor o potencia de procesamiento) para adaptarse a las necesidades de cada momento.

¿Por qué utilizar Salesforce Functions?

Tras haber visto la definición anterior, se podría decir que las Salesforce functions son un apoyo excelente a los procesos clásicos de Salesforce, permitiendo extender la funcionalidad de sus flujos de trabajo y facilitar la integración con sistemas externos.

En general, algunos de los escenarios ideales de uso de las Salesforce Functions serían los siguientes:

  • Operaciones pesadas computacionalmente o que requieran de elasticidad en el escalado. Esta es la ventaja más evidente, pues permite adaptarse a necesidades cambiantes y a demandas repentinas de servicio por parte del cliente.
  • Empleo de librerías de terceros que pueden simplificar el proceso de desarrollo. Ésta es la favorita de los desarrolladores, pues permite introducir código de terceros ya existente, simplificando la implementación y favoreciendo la reutilización.
  • Integraciones con sistemas externos, ampliando las funcionalidades base de la plataforma. Gracias al punto anterior, se reduce la complejidad de integración de Salesforce con otros sistemas, lo que permite que el CRM sea una gran herramienta útil en entornos heterogéneos, con diferentes tecnologías.
  • Procesamiento real de datos, como captura de datos y eventos en IoT (haz clic en el siguiente enlace si quieres saber qué es el Internet de la Cosas o Internet of Things). El escalado de las functions permite procesar grandes volúmenes de datos y transformarlos en el momento para su posterior uso bajo el CRM.

Relacionado: Mejores CRM de ventas 2022: ¿Cuál es el ideal para tu empresa?

CRM

Ventajas de usar Functions en Salesforce

Para que puedas hacerte una idea del verdadero potencial de esta tecnología, te presentamos algunas de las ventajas más relevantes a la hora de utilizarlas:

  • Sus operaciones no cuentan para los límites de Salesforce en relación a las peticiones
  • Se ejecutan en entornos separados de manera aislada y escalan automáticamente. Eso significa que no pueden impactar en el rendimiento del propio CRM, lo que permite mantener un buen servicio.
  • No es necesario preocuparse por la autenticación, dado que ya están autenticadas contra la organización. En esencia, las functions podrán operar con la información del CRM de forma directa, sin necesidad de realizar operaciones adicionales, con lo que se gana en eficiencia.
  • Pueden ser invocadas desde Flow o LWC empleando Apex, sin límites en el número de llamadas asíncronas que se pueden realizar. Esto permite extender la funcionalidad base de Salesforce de forma efectiva sin impactar en los recursos necesarios para otros procesos ya existentes.

Limitaciones

Sin embargo, como todo, la tecnología de Salesforce functions no sirve en cualquier escenario. Existen limitaciones a la hora de utilizarlas y es necesario tenerlas en cuenta:

  • Límites de ejecución de 15 minutos: Procesos con duración mayor no podrán implementarse mediante Functions. Al tratarse de procesos tan eficientes y escalables, una ejecución mayor implica que seguramente las functions no son la tecnología a aplicar en dicha problemática.
  • Las que se ejecuten de manera síncrona tendrán un límite de 2 minutos para responder: Esto significa que en aquellas circunstancias en las que las functions vayan a tardar más de este tiempo en hacer su trabajo, deberemos llamarlas de forma asíncrona y esperar a que terminen su ejecución.
  • Disponen de 1Gb de memoria máximo: Si superamos este límite, por ejemplo, trabajando con ficheros muy grandes acumulando su información en la memoria del proceso, deberemos emplear otras tecnologías o fragmentar los datos en lotes.
  • Las peticiones aplican los mismos límites que existen en las llamadas a Salesforce actualmente: 6Mb de tamaño en las síncronas y 12 en las asíncronas. Es decir, que si tenemos pensado utilizar las functions en integraciones con intercambios de información en red muy grandes, no podremos utilizarlas.
  • No están disponibles localmente: Actualmente los entornos de computación de las Functions sólo están disponibles en Estados Unidos, lo que puede conllevar problemas de latencia, así como accesos a los datos de la organización Salesforce en otros lugares del mundo desde América

Desarrollo en Salesforce Functions

Otro de los puntos clave a tener en cuenta cuando se debe aprender a utilizar una nueva funcionalidad es el conocimiento previo que se tiene de las tecnologías a aplicar. Las functions pueden desarrollarse en la actualidad con conocimientos en varios lenguajes de programación ampliamente utilizados y de uso extendido:

Javascript

Estos permiten utilizar todo el potencial de las herramientas ya existentes desarrolladas por sus respectivas comunidades, aprovechando la reutilización y simplificando el proceso de desarrollo. Además, en el futuro, se prevé que se agreguen nuevos lenguajes al repertorio para que podamos desarrollarlas en nuestro favorito.

Conclusión

Las Salesforce Functions son perfectas para extender la funcionalidad base del CRM, orquestar comunicaciones con sistemas externos y construir procesos de forma eficiente y simple, sin preocuparse de mantener una infraestructura.

Además, el poder reutilizar componentes y código desarrollado por terceros permite acortar su tiempo de implementación, alargar su vida útil sin mantenimiento adicional y posicionar a Salesforce, del cual NTS Seidor es partner para España desde hace más de 15 años, como una herramienta aún más potente a la hora de integrarla en entornos tecnológicamente heterogéneos.

Esperamos que tras haber leído esto, te hayan entrado ganas de probar todo lo que pueden llegar a ofrecer. Mientras tanto, aquí te dejamos algo de documentación adicional para que investigues más, y, por qué no, desarrollar tu primera Salesforce Function.

Recursos adicionales: