Arquitectura
DeviceChain es un conjunto de microservicios Go sin estado sobre una biblioteca core compartida, coordinados por un operador de Kubernetes y conectados mediante NATS JetStream. Una única instancia sirve a todos los inquilinos (un modelo de microservicio compartido), con el aislamiento de inquilinos aplicado en las capas de mensajería y almacenamiento en lugar de ejecutar pods separados por inquilino.
Modelo de dominio
DeviceChain modela el mundo físico con un pequeño conjunto de conceptos componibles. La decisión definitoria es que el contexto del dispositivo se expresa como un grafo de relaciones tipado (typed relationship graph) en lugar de un registro de asignación fijo — lo que mantiene el modelo abierto a nuevos tipos de entidad con el tiempo.
Multitenencia
DeviceChain ejecuta un único conjunto compartido de microservicios por instancia que atiende a todos los inquilinos, en lugar de levantar una pila separada de pods para cada inquilino. El aislamiento se aplica en las capas de mensajería y almacenamiento.
Paneles
DeviceChain incluye un sistema de paneles (dashboards) embebible y con control de versiones para visualizar datos de dispositivos en vivo. Un panel es un recurso con alcance de inquilino creado en la consola y renderizado a partir de una definición JSON portable — la misma definición puede embeberse en cualquier aplicación React o abrirse en el visor de referencia independiente.
Procesamiento de eventos y alarmas
DeviceChain convierte la telemetría bruta de los dispositivos en señales significativas. Un servicio dedicado event-processing observa los eventos a medida que fluyen por el pipeline: una etapa DETECT evalúa reglas en streaming en tiempo real, y una etapa REACT ejecuta las respuestas automatizadas que declara cada disparo — levantando una alarma (una condición con estado que tiene un ciclo de vida, una severidad y una vía para notificar a una persona) o emitiendo un comando de vuelta al dispositivo.
Conectores de Salida
La detección es solo la mitad de la automatización — la otra mitad es actuar sobre el mundo exterior. Cuando se dispara una regla de detección, sus acciones REACT pueden alcanzar más allá de la plataforma: llamar a un webhook, o publicar un mensaje en un broker o una cola en la nube. Estos conectores de salida son la forma en que DeviceChain distribuye los eventos procesados hacia los sistemas que ya operas — una herramienta de incidentes, un pipeline de datos, el bus de mensajes de otra aplicación.
Acceso de IA (MCP)
Los asistentes de IA — Claude Desktop y Claude Code, Cursor, VS Code — pueden operar un inquilino de DeviceChain en nombre de un usuario a través de un servidor Model Context Protocol (MCP). Un cliente LLM se conecta, descubre un conjunto de herramientas y las invoca para responder preguntas sobre tu flota: "¿qué dispositivos del Edificio 3 no han reportado en la última hora?", "resume las alarmas de hoy para los activos de almacenamiento en frío", "¿cuál es la última temperatura del termostato T-114?"
Autoría Asistida por IA
Una regla de detección puede crearse de tres maneras en DeviceChain: un formulario tipado, un lienzo de automatización visual y, con el servicio de IA habilitado, una puerta de "Describir" en inglés sencillo. Escribes "levanta una alarma alta cuando la temperatura de un congelador se mantenga por encima de -15°C durante más de diez minutos" y la plataforma redacta una regla que puedes revisar, ajustar y publicar.
Niveles de inquilino y empaquetado
Un nivel de inquilino (tenant tier) es la forma en que un operador empaqueta lo que recibe un inquilino. Es una entidad de primera clase, definida por el operador —oro / plata / bronce, o cualquier nombre que un operador elija y venda— que otras partes de la plataforma leen pero nunca redefinen. Un nivel responde a la pregunta "¿cuánto?": los límites de gobernanza que hereda un inquilino y los modelos de IA que un inquilino puede usar.
Marca blanca e identidad de marca
DeviceChain permite que un inquilino presente la consola bajo su propia marca:
Almacenamiento de objetos
Algunas cosas que una plataforma guarda no son ni filas ni puntos de series temporales — el logo de un inquilino, una imagen de fondo de panel, y eventualmente paquetes de firmware. Estos son activos binarios opacos, y no pertenecen a la base de datos relacional. DeviceChain los almacena en un almacén de objetos pluggable: una interfaz en la biblioteca core compartida, con backends de almacenamiento intercambiables seleccionados por configuración.
Gobernanza y cuotas
DeviceChain ejecuta un único conjunto compartido de servicios para todos los inquilinos, y el aislamiento de inquilinos allí trata sobre la corrección la equidad. Las cuotas por inquilino aseguran que la ráfaga, la tormenta de reconexiones o la regla mal configurada de un inquilino no puedan agotar la capacidad que todos los inquilinos comparten. El aislamiento de datos sin equidad de recursos igual permite que una flota degrade a todos los demás; la gobernanza cierra esa brecha.
Presencia de dispositivo
DeviceChain mantiene una señal de presencia en vivo para cada dispositivo — si está actualmente en línea, y cuándo se conectó, desconectó o reportó actividad por última vez. La presencia forma parte del último estado conocido de un dispositivo (la misma proyección que contiene sus mediciones y ubicación más recientes), y aparece en la pestaña Connectivity del dispositivo en la consola.
Ingesta de Sparkplug-B
Muchas flotas industriales y de automatización de edificios ya publican
Ingesta LwM2M
Las flotas restringidas y celulares suelen hablar OMA LwM2M — un estándar compacto de gestión de dispositivos sobre CoAP. DeviceChain termina LwM2M directamente: los dispositivos se conectan a él mediante CoAP/UDP asegurado con DTLS, y su registro, telemetría y firmware se asignan todos al mismo modelo de dispositivo único que usa cualquier otro transporte.