{"id":12724,"date":"2022-01-28T08:00:34","date_gmt":"2022-01-28T16:00:34","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=12724"},"modified":"2024-03-08T18:09:25","modified_gmt":"2024-03-09T02:09:25","slug":"event-driven-architecture-with-solace-event-broker-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/event-driven-architecture-with-solace-event-broker-couchbase\/","title":{"rendered":"Arquitectura basada en eventos con Solace Event Broker y Couchbase"},"content":{"rendered":"<p><span style=\"font-weight: 400\">La arquitectura as\u00edncrona basada en eventos de Couchbase es el n\u00facleo de su dise\u00f1o. Las mutaciones de documentos fluyen continuamente hacia Couchbase Index, Analytics, <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/eventing\/\">Eventos<\/a> y servicios de b\u00fasqueda.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Esta arquitectura garantiza que los servicios de Couchbase se actualizan en tiempo real y nos permite integrar Couchbase a la perfecci\u00f3n en su arquitectura basada en eventos.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Esta entrada del blog demuestra c\u00f3mo se puede integrar Couchbase con un corredor de eventos. <\/span><span style=\"font-weight: 400\">En este post, utilizo el popular <\/span><a href=\"https:\/\/docs.solace.com\/Solace-PubSub-Platform.htm\"><span style=\"font-weight: 400\">Agente de mensajes Solace PubSub<\/span><\/a><span style=\"font-weight: 400\">pero la integraci\u00f3n con otros productos de mensajer\u00eda, como Kafka, es muy similar.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Arquitectura general<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Couchbase puede interactuar con otros sistemas usando los SDKs de Couchbase y varios Couchbase Connectors, como el que tenemos para Kafka. Para esta integraci\u00f3n, usamos un enfoque alternativo, Couchbase Eventing Service. El servicio de eventos te permite actuar r\u00e1pidamente sobre los cambios (mutaciones) de tus datos activando funciones JavaScript. El servicio de eventos soporta cURL de forma nativa y te permite llamar a servicios REST externos directamente desde el receptor JavaScript.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Utilizamos esta capacidad para enviar datos a Solace PubSub+ utilizando su API de mensajer\u00eda REST. Los mensajes se env\u00edan a un Solace Topic que sus suscriptores pueden consumir.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En esta integraci\u00f3n, aplicamos un <\/span><i><span style=\"font-weight: 400\">unidireccional<\/span><\/i> <i><span style=\"font-weight: 400\">POST <\/span><\/i><span style=\"font-weight: 400\">a Solace, ilustrado en la siguiente figura. Aqu\u00ed, la funci\u00f3n Couchbase Eventing env\u00eda un <\/span><i><span style=\"font-weight: 400\">HTTP POST <\/span><\/i><span style=\"font-weight: 400\">con el documento en el cuerpo del mensaje al agente de eventos Solace PubSub+. El agente de eventos acusa recibo del mensaje con un <\/span><i><span style=\"font-weight: 400\">HTTP 200 OK <\/span><\/i><span style=\"font-weight: 400\">respuesta. El mensaje est\u00e1 ahora en manos del Solace Event Broker, donde los consumidores pueden suscribirse a los mensajes del Topic.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12725\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/solace.png\" alt=\"Consumers subscribe to the Topic.\" width=\"1600\" height=\"782\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/solace.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/solace-300x147.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/solace-1024x500.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/solace-768x375.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/solace-1536x751.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/solace-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/solace-1320x645.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><i><span style=\"font-weight: 400\">Figura 1. Las mutaciones de documentos en Couchbase activan un receptor de eventos que env\u00eda el documento a un tema de Solace a trav\u00e9s de un HTTP POST. Los consumidores se suscriben al tema.<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400\">Solace puede procesar el mensaje, o los suscriptores pueden suscribirse al tema a trav\u00e9s de JMS, MQTT y otros protocolos. En este post, utilizo un consumidor REST. Un microservicio puede consumir los mensajes proporcionando un punto final de devoluci\u00f3n de llamada HTTP mediante la creaci\u00f3n de un punto final de consumidor REST en Solace. El punto final de devoluci\u00f3n de llamada se llama cuando un nuevo mensaje se a\u00f1ade al tema.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Ejemplo de solicitud<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Para demostrarlo, hemos creado un escenario de ejemplo utilizando un conjunto de datos que viene de f\u00e1brica con Couchbase, el archivo <\/span><i><span style=\"font-weight: 400\">viaje-muestra <\/span><\/i><span style=\"font-weight: 400\">cubo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En nuestro escenario de prueba, queremos publicar cualquier cambio en el archivo <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> a Solace. Como se muestra en esta figura, un microservicio se suscribir\u00e1 y consumir\u00e1 los cambios.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12726\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/couchbasecluster.png\" alt=\"\" width=\"1600\" height=\"580\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbasecluster.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbasecluster-300x109.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbasecluster-1024x371.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbasecluster-768x278.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbasecluster-1536x557.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbasecluster-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbasecluster-1320x479.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Las partes de la aplicaci\u00f3n de muestra son:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">A <\/span><b>Funci\u00f3n de eventos de Couchbase <\/b><span style=\"font-weight: 400\">se activa por cada mutaci\u00f3n del <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> documentos. A continuaci\u00f3n, la funci\u00f3n de eventos enviar\u00e1 el <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> documento a un tema de Solace\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><b>Corredor de eventos Solace <\/b><span style=\"font-weight: 400\">que contiene la cola y el tema, as\u00ed como la configuraci\u00f3n de entrega REST\u00a0<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">A <\/span><b>Consumidor REST <\/b><span style=\"font-weight: 400\">suscrito al tema Solace<\/span><\/li>\n<\/ol>\n<h4><span style=\"font-weight: 400\">Requisitos previos<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Estos tres requisitos previos son necesarios para seguir junto con la solicitud de muestra:<\/span><\/p>\n<p><b>Couchbase 7 Enterprise Edition<\/b><\/p>\n<p><span style=\"font-weight: 400\">Puedes ejecutar Couchbase como un cl\u00faster de un solo nodo <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/getting-started-docker.html\"><span style=\"font-weight: 400\">sobre Docker<\/span><\/a><span style=\"font-weight: 400\"> en una m\u00e1quina local.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Creamos un cluster Couchbase de un solo nodo para prop\u00f3sitos de desarrollo (los clusters de un solo nodo no se recomiendan para uso en producci\u00f3n). Incluye los servicios Eventing y Data cuando configures Couchbase en tu cl\u00faster de un nodo.<\/span><\/p>\n<p><b>Nube de intermediarios de eventos Solace PubSub<\/b><\/p>\n<p><span style=\"font-weight: 400\">Inscr\u00edbete gratis <\/span><a href=\"https:\/\/solace.com\/products\/platform\/cloud\/\"><span style=\"font-weight: 400\">Prueba en la nube de Solace<\/span><\/a><span style=\"font-weight: 400\"> y cree un Servicio\/VPN. Configuraremos la VPN m\u00e1s adelante en las instrucciones.<\/span><\/p>\n<p><b>Consumidor REST<\/b><\/p>\n<p><span style=\"font-weight: 400\">Necesitamos un punto final HTTP que acepte <\/span><i><span style=\"font-weight: 400\">HTTP POST <\/span><\/i><span style=\"font-weight: 400\">peticiones. Dado que utilizamos Solace PubSub+ Cloud, el consumidor REST debe ser accesible desde Internet.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En lugar de alojar su propio consumidor REST, puede utilizar un servicio gratuito (como Beeceptor) que le permita recibir <\/span><i><span style=\"font-weight: 400\">HTTP POST <\/span><\/i><span style=\"font-weight: 400\">solicita y reconoce un <\/span><i><span style=\"font-weight: 400\">HTTP 200 <\/span><\/i><span style=\"font-weight: 400\">respuesta. Eso es todo lo que necesitamos para verificar que la integraci\u00f3n funciona. Si planeas realizar pruebas m\u00e1s extensas, podr\u00edas escribir tu propio microservicio consumidor REST.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Para ello, vaya a <\/span><a href=\"https:\/\/beeceptor.com\/\"><span style=\"font-weight: 400\">Beeceptor.com<\/span><\/a><span style=\"font-weight: 400\"> y configure un nombre de endpoint. En este ejemplo, utilizo <\/span><b>cbtest<\/b><span style=\"font-weight: 400\"> como punto final.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Captura la direcci\u00f3n del punto final: <\/span><a href=\"https:\/\/cbtest.free.beeceptor.com\"><b>https:\/\/cbtest.free.beeceptor.com<\/b><\/a><span style=\"font-weight: 400\">que se necesitar\u00e1 m\u00e1s adelante para configurar el punto final de recepci\u00f3n en Solace.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Configuraci\u00f3n<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Una vez establecidos los requisitos previos, es hora de configurar los distintos servicios de la aplicaci\u00f3n de ejemplo.<\/span><\/p>\n<h5><span style=\"font-weight: 400\">Configuraci\u00f3n de Solace<\/span><\/h5>\n<p><span style=\"font-weight: 400\">En primer lugar, tenemos que configurar Solace para crear el tema, la cola y el punto final de entrega REST correspondientes. Despu\u00e9s de registrarse en la nube Solace, aseg\u00farese de haber creado un Servicio\/VPN.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cada uno de los siguientes pasos se ilustra con una captura de pantalla para mostrar c\u00f3mo deber\u00eda ser su configuraci\u00f3n a medida que avanza.<\/span><\/p>\n<p><b>Configurar cola y tema<\/b><\/p>\n<p><span style=\"font-weight: 400\">Vamos a configurar el Topic para que reciba los mensajes que enviamos desde el Servicio de Eventos de Couchbase.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En la interfaz administrativa de Solace, vaya a <\/span><b>Colas\/Puntos finales<\/b><span style=\"font-weight: 400\"> y crear un nuevo <\/span><i><span style=\"font-weight: 400\">Punto final del tema<\/span><\/i><span style=\"font-weight: 400\"> llamado<\/span><i><span style=\"font-weight: 400\"> T\/rest\/pubsub<\/span><\/i><span style=\"font-weight: 400\"> utilizando la configuraci\u00f3n predeterminada.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12727\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/edittopicendpointsettings.png\" alt=\"Edit Topic Endpoint Settings\" width=\"1600\" height=\"769\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/edittopicendpointsettings.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/edittopicendpointsettings-300x144.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/edittopicendpointsettings-1024x492.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/edittopicendpointsettings-768x369.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/edittopicendpointsettings-1536x738.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/edittopicendpointsettings-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/edittopicendpointsettings-1320x634.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">A continuaci\u00f3n, vaya a <\/span><b>Colas<\/b><span style=\"font-weight: 400\"> y crear una cola llamada <\/span><i><span style=\"font-weight: 400\">Q\/bolsa\/entrada<\/span><\/i><span style=\"font-weight: 400\">. Mantenga los valores por defecto.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12728\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/queue-settings.png\" alt=\"Edit Queue Settings\" width=\"1600\" height=\"938\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/queue-settings.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/queue-settings-300x176.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/queue-settings-1024x600.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/queue-settings-768x450.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/queue-settings-1536x900.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/queue-settings-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/queue-settings-1320x774.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Ahora abra el <\/span><i><span style=\"font-weight: 400\">Q\/bolsa\/entrada<\/span><\/i><span style=\"font-weight: 400\"> en modo de edici\u00f3n y seleccione la opci\u00f3n <\/span><b>Suscripciones<\/b><span style=\"font-weight: 400\"> pesta\u00f1a. A\u00f1ada un <\/span><b>T\/rest\/pubsub<\/b><span style=\"font-weight: 400\"> suscripci\u00f3n tem\u00e1tica al <\/span><i><span style=\"font-weight: 400\">Q\/bolsa\/entrada<\/span><\/i><span style=\"font-weight: 400\"> cola.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12729\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/couchbaseinput.png\" alt=\"Q\/couchbase\/input\" width=\"1600\" height=\"680\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbaseinput.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbaseinput-300x128.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbaseinput-1024x435.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbaseinput-768x326.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbaseinput-1536x653.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbaseinput-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/couchbaseinput-1320x561.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Una vez creados la cola y el tema, el cliente REST puede suscribirse a ellos.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ir a <\/span><b>\u00a0Conexiones de clientes<\/b><span style=\"font-weight: 400\"> y cambiar a la <\/span><b>REST<\/b><span style=\"font-weight: 400\"> pesta\u00f1a. Cree un nuevo <\/span><b>Punto final de entrega REST<\/b><span style=\"font-weight: 400\"> con el nombre <\/span><b>RDPCouchbase<\/b><span style=\"font-weight: 400\">. Mantenga los valores por defecto y aseg\u00farese de habilitar el nuevo endpoint.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12730\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/editrestdelivery.png\" alt=\"Edit REST Delivery Endpoint\" width=\"1600\" height=\"943\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/editrestdelivery.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/editrestdelivery-300x177.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/editrestdelivery-1024x604.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/editrestdelivery-768x453.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/editrestdelivery-1536x905.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/editrestdelivery-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/editrestdelivery-1320x778.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Navegue hasta el endpoint reci\u00e9n creado y vaya a la secci\u00f3n <\/span><b>Consumidores REST<\/b><span style=\"font-weight: 400\"> ficha.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Crear un nuevo <\/span><b>Consumidor REST<\/b><span style=\"font-weight: 400\"> con el nombre <\/span><b>demoConsumidor <\/b><span style=\"font-weight: 400\">y <\/span><b>active<\/b><span style=\"font-weight: 400\"> al consumidor.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Proporcione la direcci\u00f3n del host remoto para el servicio REST consumidor. Como se describe en el requisito previo, proporcione su propio punto final o cree un punto final de prueba gratuito en Beeceptor.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Configure el puerto remoto; nosotros utilizamos Beeceptor con el puerto 80 y mantenemos el resto de valores por defecto.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12731\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/restconsumer.png\" alt=\"\" width=\"1600\" height=\"1256\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/restconsumer.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/restconsumer-300x236.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/restconsumer-1024x804.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/restconsumer-768x603.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/restconsumer-1536x1206.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/restconsumer-20x16.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/restconsumer-1320x1036.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Navegue hasta el <\/span><b>Enlaces de consulta<\/b><span style=\"font-weight: 400\"> en la pesta\u00f1a <\/span><b>RDPCouchbase <\/b><span style=\"font-weight: 400\">REST y a\u00f1ada el enlace para la cola Q\/couchbase\/input creada recientemente. A\u00f1ada el <\/span><i><span style=\"font-weight: 400\">Objetivo de la solicitud de puesto, <\/span><\/i><span style=\"font-weight: 400\">que corresponde a la ruta URL del receptor REST. Utilizo <\/span><i><span style=\"font-weight: 400\">\/callback<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12732\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/callback.png\" alt=\"\" width=\"1600\" height=\"539\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/callback.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/callback-300x101.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/callback-1024x345.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/callback-768x259.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/callback-1536x517.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/callback-20x7.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/callback-1320x445.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<h4><span style=\"font-weight: 400\">Verificar la configuraci\u00f3n REST de Solace<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Para verificar que Solace est\u00e1 configurado correctamente y que los mensajes REST pueden ser consumidos por Solace as\u00ed como enviados al cliente REST, ejecute el siguiente comando cURL:<\/span><\/p>\n<pre class=\"\">curl -v -X POST https:\/\/mrd3aaxn3oc4d.messaging.solace.cloud:9443\/T\/rest\/pubsub \\\r\n-d \"Hello World REST\" \\\r\n-H \"content-type: text\" \\\r\n-H \"Solace-delivery-mode: direct\" \\\r\n--user solace-cloud-client:g50ou1qos9ha0hauabrp0nn2ev<\/pre>\n<p><span style=\"font-weight: 400\">Sustituye el nombre de host y las credenciales por la configuraci\u00f3n de tu entorno.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Esto concluye la configuraci\u00f3n de Solace. Ahora tenemos un tema que puede recibir mensajes y un suscriptor REST que proporciona una funci\u00f3n de devoluci\u00f3n de llamada.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">Configuraci\u00f3n de Couchbase<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Con nuestro nodo Couchbase ejecutando los servicios Eventing y Data, podemos crear la funci\u00f3n eventing.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Instale el <\/span><i><span style=\"font-weight: 400\">viaje-muestra<\/span><\/i><span style=\"font-weight: 400\"> cubo de muestras (<\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/manage\/manage-settings\/install-sample-buckets.html\"><span style=\"font-weight: 400\">consulte la documentaci\u00f3n aqu\u00ed<\/span><\/a><span style=\"font-weight: 400\">).\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Crear un cubo llamado <\/span><b><i>rr100<\/i><\/b><span style=\"font-weight: 400\"> (para la relaci\u00f3n residente 100%) y un \u00e1mbito denominado <\/span><b><i>concurso<\/i><\/b><i><span style=\"font-weight: 400\">. <\/span><\/i><span style=\"font-weight: 400\">En este \u00e1mbito, cree una colecci\u00f3n denominada <\/span><b><i>metadatos<\/i><\/b><i><span style=\"font-weight: 400\">.<\/span><\/i><\/p>\n<p><i><span style=\"font-weight: 400\">rr100.eventing.metadata<\/span><\/i><span style=\"font-weight: 400\"> ser\u00e1 utilizado por la funci\u00f3n de eventos para almacenar sus metadatos.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">En Couchbase, antes de la versi\u00f3n 7, ten\u00edas que crear un bucket dedicado para los metadatos. Con la versi\u00f3n 7 aprovechamos el soporte de \u00e1mbitos y colecciones para crear en su lugar una colecci\u00f3n dedicada para la informaci\u00f3n de metadatos de eventing.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Vaya al servicio de eventos y cree una nueva funci\u00f3n de eventos haciendo clic en <\/span><i><span style=\"font-weight: 400\">A\u00f1adir funci\u00f3n<\/span><\/i><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12733\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/functionsettings.png\" alt=\"\" width=\"1328\" height=\"1600\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings.png 1328w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings-249x300.png 249w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings-850x1024.png 850w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings-768x925.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings-1275x1536.png 1275w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings-300x361.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings-17x20.png 17w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/functionsettings-1320x1590.png 1320w\" sizes=\"auto, (max-width: 1328px) 100vw, 1328px\" \/><\/p>\n<p><span style=\"font-weight: 400\">El receptor de eventos escucha el evento <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> colecci\u00f3n en el <\/span><i><span style=\"font-weight: 400\">inventario<\/span><\/i><span style=\"font-weight: 400\"> \u00e1mbito dentro del <\/span><i><span style=\"font-weight: 400\">viaje-muestra<\/span><\/i><span style=\"font-weight: 400\"> cubo. Esto activar\u00e1 nuestro receptor de eventos cada vez que se modifique un documento dentro del bucket <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> mientras que los cambios en documentos de otras colecciones o buckets no se recogen.<\/span><\/p>\n<p><span style=\"font-weight: 400\">El rr100.eventing.<\/span><i><span style=\"font-weight: 400\">metadatos<\/span><\/i><span style=\"font-weight: 400\"> bucket se utiliza para almacenar los metadatos de las funciones de eventing.<\/span><\/p>\n<p><span style=\"font-weight: 400\">En <\/span><i><span style=\"font-weight: 400\">curlSolaceRestUrl<\/span><\/i><span style=\"font-weight: 400\"> especifica el alias de URL para el punto final REST de Solace receptor. Proporcione la URL completa, incluida la ruta URL, que representa el tema que cre\u00f3 durante la configuraci\u00f3n de Solace. Por ejemplo <\/span><span style=\"font-weight: 400\">https:\/\/mrd3aaxn3oc4d.messaging.solace.cloud:9443\/T\/rest\/pubsub<\/span><\/p>\n<p><span style=\"font-weight: 400\">El endpoint Solace requiere autenticaci\u00f3n. Configuramos <\/span><i><span style=\"font-weight: 400\">b\u00e1sico<\/span><\/i><span style=\"font-weight: 400\"> autenticaci\u00f3n y proporcionar las credenciales.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">(<\/span><span style=\"font-weight: 400\">Nota: Hubo un error en Couchbase 7.0.X que puede perder la contrase\u00f1a de tus credenciales cURL. Los problemas se pueden evitar volviendo a escribir la contrase\u00f1a si editas la configuraci\u00f3n de tu Eventing Function y realizas un \"Guardar\".<\/span><span style=\"font-weight: 400\">)<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ahora podemos aplicar el <\/span><b><i>OnUpdate()<\/i><\/b><span style=\"font-weight: 400\"> JavaScript con la configuraci\u00f3n de eventos. Couchbase activar\u00e1 esta funci\u00f3n para cualquier mutaci\u00f3n de documento en el archivo <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> colecci\u00f3n.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">En este sencillo ejemplo, enviamos todas las mutaciones de documentos a Solace utilizando el soporte cURL en el Servicio de Eventos. En un caso de uso real, normalmente aplicar\u00edamos un filtrado basado en algunos atributos del documento e implementar\u00edamos la funci\u00f3n <\/span><b><i>OnDelete<\/i><\/b><span style=\"font-weight: 400\"> para gestionar la eliminaci\u00f3n de documentos.<\/span><\/p>\n<pre class=\"\">function OnUpdate(doc, meta) {\r\n\/\/ We keep the eventing function as simple as possible with minimal error handling.\r\n\/\/ For every document mutation the document is passed on to Solace using an HTTP POST.\r\ntry {\r\n\/\/ build the request to the Solace REST endpoint.\r\nvar request = {\r\nbody: doc\r\n};\r\n\/\/ perform the cURL request using the URL alias 'curlSolaceRestUrl' from the settings\r\n\/\/ The URL alias 'curlSolaceRestUrl' from the settings contains the host including the path to the Topic in Solace\r\nvar response = curl('POST', curlSolaceRestUrl, request);\r\nif (response.status != 200) {\r\nlog(\"docId\", meta.id, \"cURL POST failed response.status:\",response.status);\r\n} else {\r\nlog(\"cURL POST success, sent\", meta.id);\r\n}\r\n} catch (e) {\r\nlog(\"ERROR cURL request had an exception:\",e)\r\n}\r\n}<\/pre>\n<h4>Probar la aplicaci\u00f3n de ejemplo<\/h4>\n<p><span style=\"font-weight: 400\">Ahora es el momento de probar la aplicaci\u00f3n de ejemplo:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Inicie el <\/span><b><i>evt_sendto_solace <\/i><\/b><span style=\"font-weight: 400\">oyente de eventos<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Vaya a <\/span><i><span style=\"font-weight: 400\">Documentos<\/span><\/i><span style=\"font-weight: 400\"> en la consola de Couchbase<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Seleccione <\/span><i><span style=\"font-weight: 400\">viajes-muestra.inventario.hotel<\/span><\/i><span style=\"font-weight: 400\"> como se muestra aqu\u00ed:<\/span><\/li>\n<li style=\"font-weight: 400\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12734\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/eventingtest.png\" alt=\"\" width=\"1462\" height=\"555\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/eventingtest.png 1462w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/eventingtest-300x114.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/eventingtest-1024x389.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/eventingtest-768x292.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/eventingtest-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/eventingtest-1320x501.png 1320w\" sizes=\"auto, (max-width: 1462px) 100vw, 1462px\" \/><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Abrir un <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> editar cualquier campo del documento y guardar los cambios. Este cambio en el documento desencadenar\u00e1 un evento de actualizaci\u00f3n que nuestro receptor de eventos recoger\u00e1.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">El receptor de eventos enviar\u00e1 ahora el documento actualizado a Solace.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Ahora podemos verificar que nuestro consumidor REST Solace ha recibido el documento actualizado. Observe que Solace envi\u00f3 el documento al consumidor REST utilizando el m\u00e9todo <\/span><b><i>\/callback<\/i><\/b><span style=\"font-weight: 400\"> especificado durante la vinculaci\u00f3n de la cola.<\/span><\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12735\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/01\/cbtest.png\" alt=\"\" width=\"1600\" height=\"875\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/cbtest.png 1600w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/cbtest-300x164.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/cbtest-1024x560.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/cbtest-768x420.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/cbtest-1536x840.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/cbtest-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/01\/cbtest-1320x722.png 1320w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Las mutaciones del documento a los documentos del hotel en el <\/span><i><span style=\"font-weight: 400\">hotel<\/span><\/i><span style=\"font-weight: 400\"> colecci\u00f3n se publican ahora en Solace y luego se env\u00edan a los suscriptores de Solace.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Couchbase services rely on the internal Database Change Protocol (DCP) which supports the\u00a0 eventually consistent view of your data.\u00a0 DCP does not guarantee that you see all changes but it does guarantee you see the most recent.\u00a0 For example if a document in `travel-sample`.inventory.hotel mutates quite fast some of the intermediate mutations can be deduplicated as such the Eventing Service will not see all the changes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Gracias por acompa\u00f1arme en esta demostraci\u00f3n.<\/span><\/p>\n<p><b>Conclusi\u00f3n<\/b><\/p>\n<p><span style=\"font-weight: 400\">Este art\u00edculo nos ense\u00f1\u00f3 a integrar Couchbase con el broker de eventos Solace usando el servicio Couchbase Eventing.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Vemos c\u00f3mo Couchbase puede integrarse perfectamente en tu arquitectura basada en eventos. Ahora puedes aprovechar al m\u00e1ximo los aspectos de calidad de servicio de la plataforma Solace con mensajer\u00eda garantizada y persistente.<\/span><\/p>\n<p><span style=\"font-weight: 400\">La l\u00f3gica de la funci\u00f3n Eventing en nuestro ejemplo se limita a una petici\u00f3n POST cURL b\u00e1sica sin un manejo de errores adecuado. Usted querr\u00e1 implementar <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-eventing-handling-errors-and-retries\/\"><span style=\"font-weight: 400\">l\u00f3gica de error y reintento<\/span><\/a><span style=\"font-weight: 400\"> para una soluci\u00f3n lista para la producci\u00f3n.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Conozca el funcionamiento interno de <\/span><a href=\"https:\/\/docs.couchbase.com\/server\/current\/eventing\/eventing-overview.html\"><span style=\"font-weight: 400\">Couchbase Eventing aqu\u00ed<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Empieza con un <\/span><a href=\"https:\/\/cloud.couchbase.com\"><span style=\"font-weight: 400\">prueba gratuita en la nube de Couchbase Capella<\/span><\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>The asynchronous event-driven architecture of Couchbase is the core of its design. Document mutations continuously stream to the Couchbase Index, Analytics, Eventing and Search services. This architecture guarantees that the Couchbase services are updated in real-time and enables us to [&hellip;]<\/p>","protected":false},"author":77950,"featured_media":12162,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2273,9327,2201],"tags":[],"ppma_author":[9323],"class_list":["post-12724","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-eventing","category-javascript","category-tools-sdks"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Event-Driven Architecture with Solace Event Broker &amp; Couchbase<\/title>\n<meta name=\"description\" content=\"Event architecture guarantees that the Couchbase services are updated in real-time. Find out how you can integrate Couchbase with an event broker.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/event-driven-architecture-with-solace-event-broker-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Event-driven architecture with Solace Event Broker &amp; Couchbase\" \/>\n<meta property=\"og:description\" content=\"Event architecture guarantees that the Couchbase services are updated in real-time. Find out how you can integrate Couchbase with an event broker.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/event-driven-architecture-with-solace-event-broker-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-28T16:00:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-09T02:09:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marian Puhl, Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marian Puhl, Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/\"},\"author\":{\"name\":\"Marian Puhl, Solutions Engineer\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b2fc479528e2819b50082a425cf381e3\"},\"headline\":\"Event-driven architecture with Solace Event Broker &amp; Couchbase\",\"datePublished\":\"2022-01-28T16:00:34+00:00\",\"dateModified\":\"2024-03-09T02:09:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/\"},\"wordCount\":1696,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg\",\"articleSection\":[\"Couchbase Server\",\"Eventing\",\"JavaScript\",\"Tools &amp; SDKs\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/\",\"name\":\"Event-Driven Architecture with Solace Event Broker & Couchbase\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg\",\"datePublished\":\"2022-01-28T16:00:34+00:00\",\"dateModified\":\"2024-03-09T02:09:25+00:00\",\"description\":\"Event architecture guarantees that the Couchbase services are updated in real-time. Find out how you can integrate Couchbase with an event broker.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg\",\"width\":1200,\"height\":628,\"caption\":\"Use your AWS Marketplace credits to purchase Couchbase professional services, trainings and certifications\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Event-driven architecture with Solace Event Broker &amp; Couchbase\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b2fc479528e2819b50082a425cf381e3\",\"name\":\"Marian Puhl, Solutions Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/1f65549252c18bb3651eaa3a78e46169\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/marian-puhl-couchbase-engineering.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/marian-puhl-couchbase-engineering.jpeg\",\"caption\":\"Marian Puhl, Solutions Engineer\"},\"description\":\"Marian Puhl is a Solutions Engineer at Couchbase in the Nordic region.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/marian-puhl\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Event-Driven Architecture with Solace Event Broker & Couchbase","description":"La arquitectura de eventos garantiza que los servicios de Couchbase se actualizan en tiempo real. Descubre c\u00f3mo puedes integrar Couchbase con un broker de eventos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/event-driven-architecture-with-solace-event-broker-couchbase\/","og_locale":"es_MX","og_type":"article","og_title":"Event-driven architecture with Solace Event Broker &amp; Couchbase","og_description":"Event architecture guarantees that the Couchbase services are updated in real-time. Find out how you can integrate Couchbase with an event broker.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/event-driven-architecture-with-solace-event-broker-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2022-01-28T16:00:34+00:00","article_modified_time":"2024-03-09T02:09:25+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg","type":"image\/jpeg"}],"author":"Marian Puhl, Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marian Puhl, Solutions Engineer","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/"},"author":{"name":"Marian Puhl, Solutions Engineer","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b2fc479528e2819b50082a425cf381e3"},"headline":"Event-driven architecture with Solace Event Broker &amp; Couchbase","datePublished":"2022-01-28T16:00:34+00:00","dateModified":"2024-03-09T02:09:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/"},"wordCount":1696,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg","articleSection":["Couchbase Server","Eventing","JavaScript","Tools &amp; SDKs"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/","name":"Event-Driven Architecture with Solace Event Broker & Couchbase","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg","datePublished":"2022-01-28T16:00:34+00:00","dateModified":"2024-03-09T02:09:25+00:00","description":"La arquitectura de eventos garantiza que los servicios de Couchbase se actualizan en tiempo real. Descubre c\u00f3mo puedes integrar Couchbase con un broker de eventos.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/10\/aws-marketplace-credits-couchbase-professional-services-trainings-certifications.jpg","width":1200,"height":628,"caption":"Use your AWS Marketplace credits to purchase Couchbase professional services, trainings and certifications"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/event-driven-architecture-with-solace-event-broker-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Event-driven architecture with Solace Event Broker &amp; Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b2fc479528e2819b50082a425cf381e3","name":"Marian Puhl, Ingeniera de soluciones","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/1f65549252c18bb3651eaa3a78e46169","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/marian-puhl-couchbase-engineering.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/marian-puhl-couchbase-engineering.jpeg","caption":"Marian Puhl, Solutions Engineer"},"description":"Marian Puhl es ingeniera de soluciones de Couchbase en la regi\u00f3n n\u00f3rdica.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/marian-puhl\/"}]}},"authors":[{"term_id":9323,"user_id":77950,"is_guest":0,"slug":"marian-puhl","display_name":"Marian Puhl, Solutions Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/marian-puhl-couchbase-engineering.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/marian-puhl-couchbase-engineering.jpeg"},"author_category":"","last_name":"Puhl","first_name":"Marian","job_title":"","user_url":"","description":"Marian Puhl es ingeniera de soluciones de Couchbase en la regi\u00f3n n\u00f3rdica."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/12724","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/77950"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=12724"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/12724\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/12162"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=12724"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=12724"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=12724"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=12724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}