Имеет ли каждое опубликованное событие хранилища событий Rails временную метку?

#ruby-on-rails #events #timestamp #metadata #rails-event-store

#ruby-on-rails #Мероприятия #временная метка #метаданные #rails-event-store

Вопрос:

Каждому ли событию Rails Event Store, которое было опубликовано, автоматически присваивается a timestamp ? Я пытаюсь создать функциональность, которая зависит от того, что временная метка автоматически присутствует для событий deserialize event_store , разделяемых внутри задания, но я не знаю, могу ли я на это положиться. Я надеюсь, что не нужно вручную добавлять a timestamp к событию metadata , чтобы a timestamp присутствовало, поскольку не похоже, что это было сделано где-либо в базе кода, над которой я работаю. Я знаю, что в документах указано, что возвращаемое значение RubyEventStore::Event#timestamp метода может быть nil , но я надеюсь, что это не будет nil для опубликованных событий.

Ответ №1:

Если вы не предоставите свою собственную временную метку ( :timestamp ключ в метаданных), каждое сохраненное событие будет иметь метаданные, обогащенные текущим временем — см. https://github.com/RailsEventStore/rails_event_store/blob/master/ruby_event_store/lib/ruby_event_store/client.rb#L311

Это может быть nil . Но только в том случае, если ваш clock предоставленный клиенту RailsEventStore вернет nil.

В предстоящем выпуске Rails Event Store 2.0 мы также добавим время действия ( valid_at атрибут в метаданных), что позволит реализовать двухвременный поиск событий. Следите за обновлениями.

Комментарии:

1. Спасибо! Как я могу узнать clock , предоставляется ли клиенту RES, который вернется nil ?

2. По умолчанию часы определены здесь: github.com/RailsEventStore/rails_event_store/blob/master /… Если вы не передадите что-то другое, невозможно, чтобы временная метка была равна нулю.