Skip to content

Federación de DataGraph: de app-orchestration-slm a app-orchestration-graph

Federación de DataGraph: de app-orchestration-slm a app-orchestration-graph

Cada archivo Totebox en la plataforma PointSav mantiene un DataGraph soberano: un grafo de entidades, relaciones y metadatos del corpus específicos a su dominio operacional. El archivo GIS alberga entidades geográficas y relaciones espaciales. El archivo editorial alberga entidades de contenido y grafos de autoría. Estos DataGraphs no se fusionan. No se replican. Cada uno es autoritativo en su propio dominio e inaccesible para cualquier otro archivo por defecto.

Esta soberanía es un invariante de diseño, no una limitación. La geometría de capacidades de la plataforma hace imposible el acceso al DataGraph entre archivos salvo a través de un único camino auditable: la puerta de enlace de federación de DataGraph.

Cómo funciona la federación hoy

En la plataforma actual (desde la Fase 2 de os-orchestration), la federación de DataGraph es gestionada por app-orchestration-slm mediante POST /v1/graph/federated. Cuando un proceso descendente requiere una consulta de entidades entre archivos, la solicitud llega al intermediario. El intermediario llama a FleetRegistry.list_full() — que devuelve todos los miembros de la flota Totebox registrados con su doorman_endpoint completo — y distribuye la consulta a cada miembro de forma concurrente. Cada Doorman Totebox consulta su propio DataGraph de service-content y devuelve el resultado. El intermediario agrega las respuestas FederatedGraphEntry y devuelve un FederatedGraphResponse.

Este diseño tiene tres propiedades:

Consulta bajo demanda. El intermediario no mantiene estado del DataGraph. Consulta los Toteboxes cuando se le solicita, agrega en memoria y descarta. Nada se almacena en caché entre solicitudes. Esto preserva la soberanía: si el DataGraph de un archivo se actualiza, la siguiente consulta federada devuelve datos frescos sin ningún paso de sincronización.

Solo invocado por el operador. El endpoint de federación no se llama automáticamente. Requiere un POST explícito de un llamante autorizado. Ningún proceso en segundo plano en os-orchestration barre los DataGraphs de los Toteboxes. Esto es intencional: las lecturas no solicitadas desde un archivo soberano requerirían un permiso de acceso permanente entre archivos, que la arquitectura no permite.

Protegido por autenticación. Cada Doorman Totebox valida la consulta entrante según sus reglas de capacidad locales antes de exponer datos del DataGraph. El intermediario no puede extraer datos que el Totebox no haya autorizado para acceso entre archivos.

Por qué app-orchestration-slm alberga la federación ahora

app-orchestration-slm es el intermediario de inferencia — su función principal es enrutar solicitudes de inferencia de los Doormen de Nivel 0 al nivel de cómputo adecuado. La federación está colocada junto a la inferencia por una razón sencilla: en una flota pequeña, la acción del operador que desencadena una tarea de inferencia federada (inyectar contexto entre archivos en un prompt) también necesita el resultado del DataGraph federado para construir ese contexto. Mantener ambos en un mismo proceso evita un salto de red adicional.

Esta colocación es correcta con flotas de 2 a 10 Toteboxes. A esta escala, las consultas de distribución al DataGraph son infrecuentes en comparación con las solicitudes de inferencia, el coste de conexión es trivial y la lógica de agregación es lo bastante sencilla como para mantenerse inline.

Cuándo se hace necesaria la separación

Tres condiciones indican que la federación de DataGraph debería extraerse en un servicio dedicado app-orchestration-graph:

Independencia de carga de trabajo. Cuando las consultas al DataGraph llegan a tasas, volúmenes o presupuestos de latencia sustancialmente diferentes de las solicitudes de inferencia, ambas cargas compiten por recursos dentro del mismo proceso. Una distribución federada lenta (esperando a 15 Toteboxes) bloquea el enrutamiento de inferencia; una ráfaga de solicitudes de inferencia se encola detrás de la agregación de federación. La extracción elimina este acoplamiento.

Múltiples consumidores. Mientras solo el camino de inferencia necesite acceso al DataGraph entre archivos, la colocación es defendible. Si surge un segundo consumidor — un pipeline de informes, una superficie de búsqueda entre archivos, o un coordinador de programación de entrenamiento que necesite recuentos de entidades en todos los archivos — la lógica de distribución no debería duplicarse. Un servicio dedicado con una API estable sirve a todos los consumidores.

Requisitos del pool de conexiones. app-orchestration-graph mantendría conexiones HTTP persistentes con el endpoint service-content de cada Totebox registrado. Para una flota de más de 20 Toteboxes, este pool de conexiones es un recurso no trivial. Gestionarlo dentro de app-orchestration-slm — diseñado para ser un proceso de enrutamiento sin estado — introduce una complejidad operacional que un servicio dedicado maneja de forma natural.

El umbral de activación previsto es aproximadamente 10 archivos Totebox activos con DataGraphs no triviales, o la aparición de un segundo consumidor.

Lo que app-orchestration-graph está previsto que asuma

Cuando se extraiga, app-orchestration-graph está previsto que asuma:

  • El endpoint POST /v1/graph/federated y toda la lógica de distribución (transferido desde app-orchestration-slm)
  • Un pool de conexiones persistente a todos los endpoints service-content de los Toteboxes registrados
  • Tolerancia a fallos parciales: un DataGraph Totebox inaccesible devuelve una bandera partial: true en la respuesta, y los resultados restantes se devuelven en lugar de fallar toda la consulta
  • Normalización de resultados: los resultados de entidades entre archivos usarían un formato canónico común independientemente de las variaciones de esquema del DataGraph por archivo
  • Caché de resultados (TTL corto, configurable por tipo de consulta): la federación es costosa a escala; una caché de 30 segundos sobre consultas de entidades estables está prevista para evitar distribuciones redundantes

Puerto planificado: :9181 (:9180 corresponde a app-orchestration-slm).

Lo que app-orchestration-graph NO asumirá

app-orchestration-graph no mantendrá datos de entidades, no replicará DataGraphs y no enviará nada a los Toteboxes. Es una puerta de enlace de solo lectura. La fuente de verdad de cada entidad permanece en la instancia de service-content del Totebox que la generó.

El nombre app-orchestration-content fue considerado y explícitamente descartado. Introduciría confusión con service-content — el almacén DataGraph por Totebox. La denominación de grafo (app-orchestration-graph) señala la función (puerta de enlace de federación de grafos) sin implicar propiedad de datos.

Relación con la arquitectura de separación de niveles

app-orchestration-graph es una consideración de la Fase 3 o posterior en la arquitectura de separación de niveles SLM. Las implantaciones de la Fase 1 y la Fase 2 — que utilizan el endpoint POST /v1/graph/federated integrado en app-orchestration-slm — permanecen en funcionamiento a lo largo de todo el proceso. El directorio reservado existe para capturar la intención arquitectónica y evitar que el diseño se pierda a medida que la flota crece de forma incremental.

Cuando la extracción se lleve a cabo, la transición está prevista para ser aditiva: desplegar app-orchestration-graph junto a app-orchestration-slm, migrar el endpoint de grafo federado, verificar la paridad y luego eliminar el endpoint de app-orchestration-slm. No se requieren cambios en ningún archivo Totebox — el destino de la distribución cambia en la capa del intermediario, de forma invisible para los archivos individuales.

Important Information

Important Information

Corporate structure. PointSav Digital Systems ("PointSav") is a trade name of Woodfine Capital Projects Inc. ("Woodfine"). PointSav does not itself offer, sell, or solicit any security. Any securities offering associated with Woodfine's real-property direct-hold solutions is made exclusively by Woodfine, and only by means of the applicable Private Placement Memorandum.

No investment advice. This wiki's content is provided for engineering, operational, research, and development purposes. Nothing on this wiki constitutes investment advice or a solicitation to invest in any Woodfine partnership or direct-hold solution.

Intellectual property. The PointSav name, trade name, wordmark, and marks, together with all current and future PointSav- and Totebox-branded products, services, and offerings — and the software, source code, documentation, design system, and all related materials — are proprietary to Woodfine and its affiliates, except for components identified as open source. No rights are granted except as expressly set out in a written license or agreement. See TRADEMARK.md in this repository for the full trademark notice.

Open source components. Portions of the platform are made available under permissive open-source licenses identified in the accompanying repository. Use of those components is governed by their respective license terms.

No warranty; informational use. Content on this wiki is provided for general informational purposes only and does not constitute a representation, warranty, or commitment with respect to product functionality, availability, pricing, or roadmap. Some articles describe planned or intended features, capabilities, and milestones — language such as "planned," "intended," "targeted," "may," and "expected" marks this forward-looking content, which is subject to change and does not constitute a commitment regarding future performance.

Confidentiality. Where an article describes an operational or deployment detail that is not intended for public disclosure, that article is not published on this wiki. Content here is general-purpose engineering documentation, not customer-specific configuration.

Jurisdiction. Woodfine Capital Projects Inc. is organized in British Columbia, Canada. References to the Sovereign Data Foundation on this wiki describe a planned or intended initiative only, not a current equity holder or active governance body.

Changes to this notice. PointSav may update this notice from time to time; the version posted on this page governs.

Not a filing system. This wiki is not a securities filing system, an electronic disclosure repository, or a substitute for SEDAR+ or any other regulatory filing system. Formal securities filings are made through the applicable regulatory filing system, not through this wiki.

Full disclaimer. This notice supplements, and does not replace, the full Disclaimers article. In the event of any conflict, the full Disclaimers article governs.

Read the full disclaimer →