Uma loja de eventos é um tipo de banco de dados otimizado para armazenamento de eventos.
Conceitualmente, em uma loja de eventos, apenas os eventos de um dossiê ou política são armazenados. A idéia por trás disso é que o dossiê ou política pode ser derivado desses eventos. Os eventos (e seus dados correspondentes) são os únicos fatos "reais" que devem ser armazenados no banco de dados. A instanciação de todos os outros objetos pode ser derivada desses eventos. O código instancia esses objetos na memória. Em um banco de dados da loja de eventos, isso significa que todos os objetos que devem ser instanciados não são armazenados no banco de dados. Em vez disso, esses objetos são instanciados 'On the Fly' na memória pelo código com base nos eventos. Após o uso desses objetos (por exemplo, mostrado em uma interface do usuário), os objetos instanciados são removidos da memória.
Por exemplo, o conceito de armazenamento de eventos de um banco de dados pode ser aplicado a apólices de seguro ou dossiers de pensão. Nessas políticas ou dossiers, a instanciação de cada objeto que compõe o dossiê ou política (a pessoa, parceira (s), empregos etc.) pode ser derivada e pode ser instanciada na memória com base nos eventos do mundo real.
Uma parte crucial de um banco de dados de lojas de eventos é que cada evento possui uma linha do tempo dupla: permite que as lojas de eventos corrigissem erros de eventos que foram inseridos no banco de dados da loja de eventos antes.
Valid date is the date at which the event has become valid.Transaction date is the date at which the event is entered into the database.Outra parte crucial de um banco de dados da loja de eventos é que os eventos armazenados não podem ser alterados. Uma vez armazenados, eventos errôneos também não são mais alterados. A única maneira de mudar (ou melhor: correto) esses eventos é instanciar um novo evento com os novos valores e usar a linha do tempo duplo. Um evento de correção teria os novos valores do evento original, com um evento de evento desse evento corrigido, mas uma data de transação diferente. Esse mecanismo garante a reprodutibilidade a cada momento do tempo, mesmo no período antes da correção. Ele também permite reproduzir situações com base em eventos errôneos (se necessário).
Uma vantagem do conceito de loja de eventos é que lidar com os efeitos dos eventos datados (eventos que entram em vigor antes dos eventos anteriores e que podem até invalidá -los) é muito mais fácil. Em bancos de dados regulares, o manuseio de eventos com base para corrigir eventos anteriores e errôneos pode ser doloroso, pois geralmente resulta em reversão de todas as transações e objetos errôneos anteriores e o rolando as novas transações e objetos corretos. Em uma loja de eventos, apenas o novo evento (e seus fatos correspondentes) são armazenados. O código redeterminará as transações e objetos com base nos novos fatos na memória.
Uma loja de eventos simplificará o código em que as situações errôneas e as novas situações corretas não são mais necessárias.
A desvantagem pode ser que o código precise reinstalar todos os objetos na memória com base nos eventos cada vez que uma chamada de serviço é recebida para um dossiê específico da política.