Desarrollo de un módulo a medida sobre AtoM — la plataforma archivística estándar del sector — para cubrir flujos documentales específicos de una entidad pública gallega. Trabajo sobre stack legacy (Symfony 1 + Propel ORM + MySQL) manteniendo la conformidad con los estándares internacionales ISAD(G) e ISAAR(CPF), sin alterar el core de la plataforma y sin afectar la operación del sistema ya en producción.
Entidad pública gallega con archivo administrativo activo
Las administraciones públicas gestionan un volumen significativo de documentación con valor archivístico, histórico y legal. Mantener ese archivo ordenado y accesible no es un trámite administrativo: es una obligación normativa y un servicio al ciudadano. El sector exige conformidad con estándares internacionales como ISAD(G) (descripción archivística) e ISAAR(CPF) (registros de autoridad).
En este contexto, AtoM (Access to Memory) es la plataforma consolidada. Está desarrollada por y para la comunidad archivística, y cualquier extensión sobre ella tiene que respetar sus convenciones internas y su modelo de datos. Salirse de ese marco implica romper la conformidad, perder alineamiento con la comunidad upstream o ambas cosas.
Un desafío técnico con tres capas superpuestas
- Stack legacy activo y crítico. AtoM corre sobre Symfony 1 + Propel ORM, una combinación descontinuada fuera del mundo archivístico pero plenamente viva dentro de él. Cualquier intervención exige dominio técnico del entorno, no solo familiaridad general con PHP.
- Conformidad normativa no negociable. El módulo debe integrarse con el modelo archivístico de AtoM sin romper la conformidad con ISAD(G) e ISAAR(CPF). Un atajo técnico aquí significa perder validez documental, no solo un bug.
- Sistema en producción con usuarios reales. El archivo está en uso. Cualquier despliegue tiene que minimizar el riesgo operativo y respetar las ventanas acordadas con la entidad.
- Integración profunda con el modelo de datos existente. El módulo tiene que coexistir con las tablas del core de AtoM, sin duplicar estructuras ni romper la coherencia del modelo archivístico.
Cuatro decisiones para intervenir un sistema crítico sin romperlo
En un sistema archivístico público, las decisiones técnicas tienen implicaciones normativas. No se trata de elegir el stack más nuevo, sino el que preserve la conformidad y la continuidad operativa. Cada elección se documentó para que la entidad pueda auditarla hoy y dentro de varios años.
Extender AtoM en lugar de reemplazarlo
AtoM es la plataforma consolidada en el mundo archivístico institucional. Reemplazarla habría implicado perder el alineamiento con el estándar del sector y replicar años de trabajo de la comunidad archivística. Se optó por extender la plataforma existente con un módulo a medida, preservando la compatibilidad y la conformidad normativa.
Convivir con el stack legacy, no migrarlo
AtoM corre sobre Symfony 1 + Propel ORM — un stack descontinuado. Migrar el core a un framework moderno excedía completamente el alcance del proyecto y habría roto la relación con la comunidad upstream. La decisión fue dominar el entorno legacy y trabajar dentro de sus convenciones, no alrededor.
Propel ORM sobre el modelo existente
Integrar el módulo mediante Propel sobre el mismo modelo de datos que usa AtoM garantiza coherencia, evita duplicación de lógica de persistencia y permite que futuras actualizaciones de la plataforma no rompan la extensión. Introducir un segundo ORM habría sumado complejidad sin beneficio.
Despliegue en ventana, con entorno espejo previo
Para un sistema archivístico en producción, la estabilidad es innegociable. Toda la validación se realizó en un entorno equivalente al productivo antes del despliegue, y la puesta en marcha se coordinó en ventana acordada para minimizar cualquier impacto operativo.
Módulo a medida integrado al modelo archivístico
- Módulo a medida sobre AtoM. Desarrollo extendiendo la plataforma existente, siguiendo sus convenciones de módulo y respetando el ciclo de vida de Symfony 1.
- Conformidad con ISAD(G) e ISAAR(CPF). Todo el modelo de descripción archivística se mantiene conforme a los estándares internacionales del sector, sin shortcuts que comprometan la validez documental.
- Integración mediante Propel ORM. La persistencia del módulo se apoya en el mismo ORM que usa el core de AtoM sobre MySQL, preservando la coherencia del modelo y facilitando el mantenimiento futuro.
- Flujos de trabajo adaptados. Los procesos internos de la entidad quedan reflejados en el módulo sin forzar al usuario archivista a adaptarse a una herramienta genérica.
- Despliegue no intrusivo. La puesta en producción se coordinó sin afectar la operativa cotidiana del sistema archivístico ya en uso.
Cómo encaja el módulo dentro de AtoM
- 1Base: AtoM sobre Symfony 1. La plataforma archivística corre en su entorno estándar, con su modelo de datos, sus convenciones y sus reglas de conformidad ISAD(G)/ISAAR(CPF).
- 2Módulo a medida como extensión. Se añade un módulo nuevo siguiendo el esquema de módulos de Symfony 1, sin modificar ficheros del core de AtoM.
- 3Persistencia vía Propel ORM. El módulo lee y escribe sobre el mismo motor de persistencia que usa el core, respetando el modelo de datos archivístico.
- 4Flujos adaptados a la entidad. El comportamiento del módulo refleja los procesos internos de la entidad, encapsulados como lógica propia del módulo.
- 5Base de datos MySQL compartida. Todo el almacenamiento se apoya en la misma base que AtoM ya utiliza, sin duplicar estructuras ni crear silos de información.
- 6Despliegue validado en espejo. Antes de producción, toda la integración se valida en un entorno equivalente para minimizar riesgo operativo.
Tecnologías concretas, sin maquillaje
Tres fases pensadas para preservar la estabilidad del sistema
Análisis del dominio y del sistema
Fase inicialEstudio del modelo de datos existente en AtoM, revisión de la integración actual con Propel ORM y comprensión de los flujos archivísticos requeridos conforme a los estándares del sector.
Diseño del módulo e integración
Fase centralDiseño del módulo a medida con integración no intrusiva sobre el modelo de datos de AtoM, manteniendo conformidad con ISAD(G) e ISAAR(CPF) y sin alterar las tablas del core.
Despliegue sin afectar operación
Fase finalPuesta en producción en ventana acordada con la entidad, con validación previa en entorno equivalente para garantizar estabilidad del sistema archivístico ya en uso.
Módulo entregado, operativo y conforme
El módulo se entregó dentro del plazo acordado y quedó operativo en el entorno de la entidad. Cubre los flujos archivísticos requeridos y mantiene la conformidad con los estándares internacionales del sector. El sistema AtoM en producción no sufrió interrupciones atribuibles al despliegue.
El trabajo se documentó técnicamente para que la entidad pueda auditarlo, mantenerlo y evolucionarlo con equipos propios o de terceros, sin dependencia operativa con nosotros.
Lo que confirma un proyecto sobre stack legacy en sector público
- Un stack descontinuado no es un stack muerto. Symfony 1 + Propel sigue siendo el entorno vivo del mundo archivístico porque AtoM lo usa. Tratarlo como "código viejo a reemplazar" es no entender el dominio. Dominarlo como se domina cualquier otro stack es lo que permite entregar sin romper.
- La conformidad se diseña, no se añade al final. ISAD(G) e ISAAR(CPF) no son checklists de cierre: son el modelo mental de todo el módulo desde el primer diseño. Intentar "hacer conforme" una implementación que no nació conforme es más caro que hacerlo bien desde el principio.
- Los despliegues en sector público requieren planificación, no improvisación. Ventanas acordadas, validación en entorno espejo y comunicación previa con los responsables del sistema son parte del alcance del proyecto, no detalles operativos de última hora.
Otros contextos, otros stacks, misma metodología
¿Tenés un sistema legacy crítico que necesita extenderse?
Trabajamos sobre stacks heredados sin romper lo que ya funciona. Diagnóstico inicial sin coste.
