Documentation for a newer release is available. View Latest

Crear un proyecto basado en Dynamic Settings Workflow

Dynamic settings workflow contiene los bloques de construcción que sirven como punto de partida para crear una aplicación que se adapte a tus necesidades. Dicha aplicación gestionará el ciclo de vida de las configuraciones que luego utilizarás según tu caso de uso.

Dos motivos típicos para gestionar una configuración en tu aplicación son:

  • exponer la configuración a otros servicios

  • usarla como parte del API de negocio que quieres exponer (p. ej., CSM Reachability)

Crear una configuración cubre los detalles sobre cómo añadir una nueva configuración.

La estructura de tu aplicación

Tu aplicación normalmente contendrá los siguientes módulos:
  • módulo de file-ingestion

  • módulo de data-management

  • uno o más módulos que expongan APIs de negocio

  • un módulo de aplicación que ensambla la aplicación a partir de los módulos anteriores

Módulo de file ingestion

El módulo de file ingestion se utiliza para alimentar los datos de configuración desde una fuente (directorio local, REST API…​) a través de una API de gestión de datos expuesta por el módulo de data-management. Este módulo está construido sobre el framework genérico file-ingestion-service. El framework espera que configures conectores que ingieran las configuraciones desde su fuente (los transportes actualmente soportados son directorio local/REST API).

Dependiendo de la especificación de la fuente, se necesitan mapeadores específicos para convertir las configuraciones al formato canónico.

Módulo de data management

El módulo de data management gestiona el ciclo de vida de cada tipo de configuración soportada. Encapsula el lado de escritura de la aplicación. El módulo debe construirse sobre el framework setting-management. El framework setting-management es un framework de API genérico que expone la API de gestión de datos para cada una de las configuraciones encontradas en el classpath. Debes proporcionar las configuraciones relevantes del settings-catalogue como dependencias.

Módulo(s) de API de negocio

Dependiendo del caso de uso, puedes necesitar uno o más módulos que expongan APIs de negocio. Dicho módulo normalmente consultará colecciones del lado de lectura para una o más configuraciones con el fin de proporcionar una funcionalidad específica.

CSM Reachability es un buen punto de partida.

Configuración

El módulo de file ingestion tiene una configuración por defecto para crear automáticamente índices de MongoDB durante la inicialización.

La creación de índices por defecto puede deshabilitarse con:

file-ingestion.mongodb.create-indexes=false

Los índices pueden deshabilitarse globalmente con:

ipf.mongodb.create-indexes=false

Para deshabilitar el indexado globalmente pero mantenerlo para el módulo de file ingestion, aplica lo siguiente, respetando el orden:

ipf.mongodb.create-indexes=false
file-ingestion.mongodb.create-indexes=true

El commit quorum se puede controlar de forma similar con:

file-ingestion.mongodb.commit-quorum=1

O sobrescribir globalmente con:

ipf.mongodb.commit-quorum=1