All Versions
30
Latest Version
Avg Release Cycle
60 days
Latest Release
64 days ago

Changelog History
Page 1

  • v1.0.0

    November 21, 2019

    ✨ Enhancements

    • 👌 Support multiple event stores (#168).
    • Add support for queue_target and queue_interval database connection settings (#172).
    • ➕ Add support for created_at values to be of type NaiveDateTime (#175).

    🐛 Bug fixes

    • 🛠 Fix function clause error on DBConnection.ConnectionError (#167).

    ⬆️ Upgrading

    ⬆️ [Follow the upgrade guide](guides/upgrades/0.17-1.0.md) to define and use your own application specific event store].

  • v1.0.0-rc.0

    October 14, 2019
    • 👌 Support multiple event stores (#168).
    • Add support for queue_target and queue_interval database connection settings (#172).
    • ➕ Add support for created_at values to be of type NaiveDateTime (#175).

    ⬆️ Upgrading

    ⬆️ [Follow the upgrade guide](guides/upgrades/0.17-1.0.md) to define and use your own application specific event store].

  • v0.17.0

    July 03, 2019

    ✨ Enhancements

    • 👍 SSL support including Mix tasks (#161).
    • 👉 Use timestamp with time zone for timestamp fields (#150).

    ⬆️ Upgrading

    ⬆️ Upgrade your existing EventStore database by running:

    mix event_store.migrate
    

    Note: The migrate command is idempotent and can be safely run multiple times.

    You can drop and recreate an EventStore database by running:

    mix do event_store.drop, event_store.create, event_store.init
    

  • v0.16.2

    🐛 Bug fixes

    • 🛠 Fix issue with concurrent subscription partitioning (#162).
    • Reliably start EventStore.Notifications.Supervisor on :global name clash (#165).
  • v0.16.1

    🐛 Bug fixes

    • Stop Postgrex database connection process in mix event_store.init and event_store.migrate tasks after use to prevent IEx shutdown when tasks are run together (as mix do event_store.init, event_store.migrate).
    • Ensure the event store application doesn't crash when the database connection is lost (#159).
  • v0.16.0

    January 23, 2019

    ✨ Enhancements

    • ➕ Add :socket and :socket_dir config options (#132).
    • 📇 Rename uuid dependency to elixir_uuid (#135).
    • Subscription concurrency (#134).
    • Send :subscribed message to all subscribers connected to a subscription (#136).
    • ⚡️ Update to postgrex v0.14 (#143).

    💥 Breaking changes

    • 📇 Replace :poison with :jason for JSON event data & metadata serialization (#144).

    To support this change you will need to derive the Jason.Encoder protocol for all of your events.

    This can be done by adding @derive Jason.Encoder before defining the struct in every event module.

      defmodule Event1 do
        @derive Jason.Encoder
        defstruct [:id, :data]
      end
    

    Or using Protocol.derive/2 for each event, as shown below.

      require Protocol
    
      for event <- [Event1, Event2, Event3] do
        Protocol.derive(Jason.Encoder, event)
      end
    

  • v0.15.1

    August 12, 2018

    ✨ Enhancements

    • 0️⃣ Use a timeout of :infinity for the migration task (mix event_store.migrate) to allow database migration to run longer than the default 15 seconds.

    🐛 Bug fixes

    • Socket closing causes the event store to never receive notifications (#130).
    • Subscription with selector function should notify pending events after all filtered (#131).
  • v0.15.0

    July 16, 2018
    • 👌 Support system environment variables for all config (#115).
    • 👍 Allow subscriptions to filter the events they receive (#114).
    • 👍 Allow callers to omit event_type when event data is a struct (#118).
    • Remove dependency on psql for event_store.create, event_store.init, event_store.migrate, and event_store.drop mix tasks (#117).
    • 👌 Supports query parameters in URL for database connection (#119).
    • 👌 Improve typespecs and include Dialyzer in Travis CI build (#121).

  • v0.14.0

    April 06, 2018
    • ➕ Add JSONB support (#86).
    • ➕ Add :ssl and :ssl_opts config params (#88).
    • 👉 Make mix event_store.init task do nothing if events table already exists (#89).
    • Timeout issue when using EventStore.read_stream_forward (#92).
    • 🌲 Replace :info level logging with :debug (#90).
    • 👍 Dealing better with Poison dependancy (#91).
    • Publish events directly to subscriptions (#93).
    • 👉 Use PostgreSQL advisory locks to enforce only one subscription instance (#98).
    • ✂ Remove stream process (#99).
    • 👉 Use PostgreSQL's NOTIFY / LISTEN for event pub/sub (#100).
    • 🔗 Link existing events to another stream (#103).
    • Subscription notification message once successfully subscribed (#104).
    • Transient subscriptions (#105).
    • Transient subscription event mapping function (#108).
    • 🚀 Turn EventStore mix tasks into generic tasks for use with Distillery during deployment (#111).

    ⬆️ Upgrading

    ⬆️ Upgrade your existing EventStore database by running:

    mix event_store.migrate
    

    You can drop and recreate an EventStore database by running:

    mix do event_store.drop, event_store.create, event_store.init
    

  • v0.13.2

    November 09, 2017

    🐛 Bug fixes

    • 👉 Use Supervisor.child_spec with an explicit id for Registry processes to support Elixir v1.5.0 and v1.5.1 (v1.5.2 contains a fix for this issue).