armazenamento de eventos - Event store

Um armazenamento de eventos é um tipo de banco de dados otimizada para o armazenamento de eventos.

Conceitualmente, em um armazenamento de eventos, apenas os eventos de um dossiê ou política são armazenados. A idéia por trás disso é que o processo ou política pode ser derivada a partir 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 podem ser derivados a partir desses eventos. O código instancia esses objetos na memória. Em um banco de dados armazenamento de eventos, isso significa que todos os objetos que deve ser instanciado, são não armazenados no banco de dados. Em vez esses objetos são instanciado 'on the fly' na memória pelo código baseado nos eventos. Após a utilização destes objectos (por exemplo, mostrados em uma interface de utilizador), os objectos instanciados são removidos a partir da memória.

Por exemplo, o conceito de loja caso de um banco de dados pode ser aplicada a apólices de seguros ou dossiers de pensão. Nestes políticas ou processos a instanciação de cada objeto que compõem o dossier ou política (a pessoa, parceiro (s), empregos, etc.) pode ser derivada e pode ser instanciado na memória com base nos eventos do mundo real.

Uma parte crucial de um banco de dados de armazenamento de eventos é que cada evento tem uma dupla linha do tempo: Isto permite que lojas de eventos para corrigir erros de eventos que foram inseridos no banco de dados de armazenamento de eventos antes.

  • data válida é a data na qual o evento tornou-se válido.
  • data da transação é a data na qual o evento é inserido no banco de dados.

Outra parte crucial de um banco de dados armazenamento de eventos é que os eventos que estão armazenados não estão autorizados a ser alterado. Uma vez armazenado, também eventos errôneas não são alterados mais. A única maneira de mudar (ou melhor: correta) desses eventos é instanciar um novo evento com os novos valores e usando a dupla linha do tempo. Um evento de corrigir teria os novos valores do evento original, com um evento de dados desse evento corrigido, mas a data da transação diferente. Este mecanismo assegura a reprodutibilidade em cada momento no tempo, mesmo no período de tempo antes que a correção tenha ocorrido. Ele também permite reproduzir situações com base em eventos errôneos (se necessário).

Uma vantagem do conceito de armazenamento de eventos é que lidar com os efeitos de volta datado de eventos (eventos que entram em vigor antes de eventos anteriores e que podem até invalidá-los) é muito mais fácil. Nos bancos de dados regulares, manipulação de eventos retroativos a corrigir, eventos errôneas anteriores pode ser mais doloroso que muitas vezes resulta em reverter todos, transações e objetos errôneos anteriores e arregaçando as novas, transações e objetos corretos. Em um armazenamento de eventos, apenas o novo evento (e está fatos correspondente) são armazenados. O código será então redetermine as transações e objetos com base em novos fatos na memória.

Um armazenamento de eventos irá simplificar o código em que rolando situações volta errôneas e enrolando as novas situações, corrigir não é mais necessário.

Desvantagem pode ser que o código precisa re-instanciar todos os objetos na memória com base nos eventos cada vez que uma chamada de serviço é recebido por um dossier específico da política.

links externos

Veja também