Wed Oct 12 2022
Updates to the message_store and message_store-postgres libraries to support Message DB v1.3.0.
The message_store-postgres library’s Get::Stream::Last class’s actuator supports an optional parameter named type
. This is in addition to the stream_name
parameter that has always been part of the Get::Stream::Last actuator’s signature.
Libraries affected:
- message-store (v2.3.2.0)
- message-store-postgres (v2.4.4.0)
December 2019
WARNING:
The Eventide v2 code is incompatible with a v1 message store database. Don't update the Eventide toolkit code until you're ready to update your message store database.
All tests in the v2 stack have been ported and updated to the new version of Test Bench released in October, 2019.
- This library is deprecated. It's replaced with Message DB: https://github.com/message-db/message-db
- Formerly,
postgres-message-store
(see above). - Note: There are no changes to the
messages
table, and no data migration is necessary - An update tool is provided to make the structural upgrades to the database
- The executables named
evt-pg-*
are renamed tomdb-*
- [breaking change] The
get_category_messages
server function supports pub/sub directly by receiving acorrelation
argument and composing the correlation metadata query condition directly in the server function (http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-messages-from-a-stream) - [breaking change] The message_store database and its objects are contained in a Postgres schema named
message_store
- [breaking change] The
get_category_messages
server function supports consumer groups via theconsumer_group_member
andconsumer_group_size
parameters (http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-messages-from-a-category) - The retrieval server functions provide debugging output that is activated via the Postgres setting,
message_store.debug_get
(http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output) - The write server function provides debugging output that is activated via the Postgres setting,
message_store.debug_write
(http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output) - The
message_store.debug
Postgres setting activates both the retrieval and write debug output (http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output) id
stream parsing function (http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-the-id-from-a-stream-name)cardinal_id
stream parsing function (http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-the-cardinal-id-from-a-stream-name)acquire_lock
function encapsulates the application of the advisory lock used by thewrite_message
function (http://docs.eventide-project.org/user-guide/message-store/server-functions.html#get-message-store-database-schema-version)- Database management tool output is clarified
- [breaking change] All server function parameter names are no longer named with underscore prefixes (http://docs.eventide-project.org/user-guide/message-store/server-functions.html)
- Indexes are no longer built with the
CONCURRENTLY
option (http://docs.eventide-project.org/user-guide/message-store/anatomy.html#source-code) - [breaking change] The
messages_category_global_position_idx
is removed and replaced with themessages_category
index, which now indexes correlation metadata - [breaking change] The
messages_stream_name_position_uniq_idx
is removed and replaced with themessages_stream
index, which now indexes correlation metadata - [breaking change] The
messages_id_uniq_idx
is removed and replaced with themessages_id
index - Message DB RubyGem: https://github.com/message-db/ruby-gem
- Message DB NPM Module: https://github.com/message-db/npm-module
- Improvements to interactive tests (https://github.com/eventide-project/postgres-message-store/tree/master/test)
MessageStore::Postgres::Get
receives thecorrelation
argument and passes it to the message store database's retrieval functions (http://docs.eventide-project.org/user-guide/retrieving/batch.html#retrieving-correlated-messages)MessageStore::Postgres::Get
receives theconsumer_group_member
andconsumer_group_size
arguments and passes it to the message store database's retrieval functions (http://docs.eventide-project.org/user-guide/retrieving/batch.html#consumer-groups)- Stream name utilities now support stream name with compound IDs (http://docs.eventide-project.org/user-guide/stream-names/message-store-stream-name.html#stream-name)
- Cardinal IDs are formalized as part of the stream name utilities (http://docs.eventide-project.org/user-guide/stream-names/message-store-stream-name.html#stream-name)
- Concrete
Get::Category
andGet::Stream
classes can be constructed, configured, and used directly without using the abstractGet
factory - Correlation is supported exclusively by the
Get::Category
implementation - Consumer groups are supported exclusively by the
Get::Category
implementation
- Stream name composition and parsing supports all same features as the stream name composition and parsing in the message store library (http://docs.eventide-project.org/user-guide/stream-names/messaging-stream-name.html)
- [breaking change] Entity stream names are no longer supported by consumers (http://docs.eventide-project.org/user-guide/consumers.html)
- Correlation query conditions are no longer composed in the consumer and passed to the message store database server functions. The message store database composes the correlation query conditions within its server functions.
- Consumer group query conditions are no longer composed in the consumer and passed to the message store database server functions. The message store database composes the correlation query conditions within its server functions.
- Message DB documentation is improved
- The
MessageStore::Postgres::Get
module is documented (http://docs.eventide-project.org/user-guide/retrieving/batch.html) - Debugging output for the Postgres server functions is documented (http://docs.eventide-project.org/user-guide/message-store/server-functions.html#debugging-output)
- Stream name utilities documentation is updated and improved: http://docs.eventide-project.org/user-guide/stream-names
- Consumer user guide is improved and is more consistent with
MessageStore::Postgres::Get
documentation: http://docs.eventide-project.org/user-guide/consumers.html - The settings file location override is documented (http://docs.eventide-project.org/user-guide/session.html#overriding-the-setting-file-location)