Rails Event Store v0.39.0 Release Notes

Release Date: 2019-04-24 // 9 months ago
  • 🚅 RailsEventStore

    • 🚅 Remove: Deprecated from(:head) has been removed from read specification. When from(event_id) is not specified, we always read from head [#565]

    💎 RubyEventStore

    🚅 Remove: Deprecated from(:head) has been removed from read specification. When from(event_id) is not specified, we always read from head [#565]

    Change: New default cipher (aes-256-gcm) for RubyEventStore::Mappers::EncryptionMapper. From now on we follow OpenSSL recommendation for using an Authenticated Encryption mode. This change is backwards-compatible, you can still decrypt ciphertext encrypted with previous cipher as this is stored within encryption metadata [#567, a13658c]

    Fix: RubyEventStore::Mappers::NullMapper now follows behaviour of mappers more strictly by turning events into serialized records on serialization. It still does not perform serialization and is thus recommended for use in testing [#552, #575]

    If you've relied on NullMapper + InMemoryRepository returning objects of the same object_id, this is a breaking change. You may replicate that behaviour with:

    class NULLdef self.serialized\_record\_to\_event(record) record enddef self.event\_to\_serialized\_record(event) event endend
    

    ↪ Bear in mind though such workaround will not support many already existing repository features (i.e. of_type) and may become even more trouble in the future.

    🚅 RailsEventStoreActiveRecord

    • 🚅 Add: Migrating existing events is now supported on sqlite (version 3.24 or newer is required) [#446, #574]

    AggregateRoot

    • no changes

    🚅 RailsEventStore::RSpec

    • no changes

    BoundedContext

    • no changes

    💎 RubyEventStore::Browser

    • no changes

    💎 RubyEventStore::ROM

    • no changes

    ✅ In this release we've also ended testing support for Ruby 2.3. This means that while Rails Event Store might continue to work without issues on that Ruby version, new development won't be targeting compatibility with it.