# api-shared-application Contrato del event store y reconstrucción de agregados. - **Import**: `@task-stream/api/shared/application` - **Capa**: `application` · **Tags**: `scope:api-shared`, `type:application` ## Contenido - `EventStore` (puerto): `persist` y `getEventsByStreamId`. - `AggregateRehydrator`: carga los eventos de un stream y devuelve el agregado reconstruido, ya enlazado con el `EventPublisher`. - `EventRecorder`: guarda un evento en un stream que no es de ningún agregado propio (p. ej. un usuario de Pireon), en la siguiente posición, para que otros contextos reaccionen a él. - `SharedModule.withInfrastructure(...)`: módulo global que expone el event store, el rehydrator y el recorder a todos los contextos. ## Comandos ```sh npx nx lint api-shared-application npx nx test api-shared-application # Jest ``` Reglas de dependencia entre capas: [Arquitectura](../../../../docs/02-arquitectura.md#21-capas-hexagonales).