---
title: "Ontologías Kafka en Multitenant"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2216695041/Ontolog%C3%ADas%20Kafka%20en%20Multitenant"
format: markdown
---
> ℹ️ Disponible desde la versión 2.1.3-gradius

En cuanto a Kafka se refiere, 2 son los principales usos dentro de la Onesait Platform:

- [Enviar datos a Onesait Platform desde tópicos Kafka](https://onesaitplatform.atlassian.net/wiki/spaces/PT/pages/673218611)
- [Notificaciones de datos de ontologías a tópicos Kafka](https://onesaitplatform.atlassian.net/wiki/spaces/OP/pages/572850284)

Cuando el modo multitenant está activo, el uso de kafka varía un poco frente al comportamiento por defecto. Si el usamos el vertical y tenant por defecto, nada cambia comparado con las dos guías mencionadas anteriormente. sin embargo, <u>**si usamos un vertical o tenant diferente**</u>, las siguientes consideraciones tienen que tenerse en cuenta.

- Nomenclatura de los tópicos Kafka relacionados con ontologías.
  Por defecto hay 2 prefijos para tópicos, uno para tópicos de entrada de datos (ONTOLOGY) y otro para notificaciones en tópicos (ONTOLOGY_OUTPUT). Los nombres de los tópicos se compondrán de la siguiente manera:
  - Tópico de entrada: <PREFIJO_ENTRADA>-<NOMBRE_VERTICAL>-<NOMBRE_TENANT>-<NOMBRE_ONTOLOGÍA>
  - Tópico de notificación: <PREFIJO_NOTIFICACIÓN>-<NOMBRE_VERTICAL>-<NOMBRE_TENANT>-<NOMBRE_ONTOLOGIA>
    Por ejemplo, vamos a crear una ontología llamada “MyOntology” a la cual le activaremos ambos check de Kafka (entrada y notificación). A continuación crearemos un Cliente Digital con un token perteneciente a otro tenant distinto al de por defecto, pero en el mismo vertical.
    Si vamos a insertar datos a la ontología a través del tópico Kafka, siguiendo la nomenclatura, éste se llamará: `ONTOLOGY-ONESAITPLATFORM-TENANT_RENE-MYONTOLOGY`
    Si queremos estar escuchando las notificaciones de inserción de una ontología, el nombre del tópico de notificaciones será: `ONTOLOGY_OUTPUT-ONESAITPLATFORM-TENANT_RENE-MYONTOLOGY`
    
- Seguridad. Clientes Digitales y usuarios Kafka
  Onesait Platform tiene su propio plugin de seguridad, donde los Clientes Digitales representan también usuarios Kafka. cuando nos conectamos a Kafka de plataforma, se requiere el uso de un fichero JAAS, indicando en el valor del “username” el nombre del Cliente Digital y en el campo “password” un token generado para este.  
Si multitenant está activado y queremos usar un vertical o tenant distintos de los de por defecto, el “username” dejará de ser solo el nombre del Cliente Digital para seguir la siguiente nomenclatura:<NOMBRE_CLIENTE_DIGITAL>-<NOMBRE_VERTICAL>-<NOMBRE_TENANT>.
  Usemos el mismo ejemplo que el caso anterior. Conectaremos un cliente a Kafka (sea para escribir datos o para recibir notificaciones) pero usando un tenant distinto del por defecto, en este caso “tenant_rene”. Siguiendo la regla descrita en este punto, el “username” que tendremos que utilizar será `MyKafkaClient-onesaitplatform-tenant_rene` y la “password” de JAAS será el token asociado a dicho tenant:
  

Esto se puede ver si miramos las ACLs/permisos en Kafka para cada tópico y usuario:

![image](media://051dabce-70b6-4e0c-a661-1549b58014ee)