Apache Kafka es una plataforma open-source de distribución de mensajes de alto desempeño.

La integración por medio de Apache Kafka se realiza intercambiando mensajes en formato JSON a través de los canales, o topics, del servidor Kafka.

Ya que Aleph se encarga de mantener el servidor de Apache Kafka, lo que se requiere del proveedor/integrador es crear un cliente de Kafka, usando la librería de su preferencia en la tecnología que utilicen.

El siguiente es un ejemplo de como crear un cliente en lenguaje Ruby usando la librería rdkafka.

require "json"
require "rdkafka"

config = {
  "metadata.broker.list" => ["kafka_server_1:12345", "kafka_server_2:12345"]
  "security.protocol" => "sasl_ssl",
  "sasl.mechanisms" => "SCRAM-SHA-512", 
	"sasl.username" => "username", 
	"sasl.password" => "password",
}

producer.produce(
	topic:   "topic_name",
	payload: { field_a: 1, field_b: 2 }.to_json,
)

<aside> 💡 El usuario, la contraseña, el nombre del topic y los servidores serán provistos por correo electrónico

</aside>

La estructura del mensaje JSON que se enviara sera el siguiente:

{
	"vehicle_id": "12345ABCD",
	"datetime": "2024-12-31T23:59:59-0600",
	"latitude": 23.12345,
	"longitude": -99.12345,
	"provider": "name_of_your_company"
}

Importante mencionar que la fecha y hora requiere incluir la zona horaria. y el identificador de vehículo puede ser cualquier valor pero preferiblemente las placas