pg_eventstore 1.13.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +11 -2
- data/CHANGELOG.md +195 -16
- data/README.md +33 -10
- data/db/migrations/10_setup_pg_cron.rb +1 -0
- data/db/migrations/11_add_events_link_global_position.sql +1 -0
- data/db/migrations/12_migrate_legacy_links.rb +83 -0
- data/db/migrations/13_remove_events_link_id.sql +6 -0
- data/db/migrations/14_remove_ids_events_id_index.sql +1 -0
- data/db/migrations/15_create_streams_global_index.sql +17 -0
- data/db/migrations/16_populate_streams_global_index.rb +150 -0
- data/db/migrations/17_create_events_global_index.sql +62 -0
- data/db/migrations/18_populate_events_global_index.rb +124 -0
- data/db/migrations/19_populate_events_global_index_p2.rb +25 -0
- data/db/migrations/20_migrate_subscriptions_current_position.sql +19 -0
- data/db/migrations/21_create_partitions_stats.sql +2 -0
- data/db/migrations/22_drop_streams_sql_view.sql +2 -0
- data/db/migrations/23_adjust_partitions_indexes.sql +5 -0
- data/db/migrations/24_drop_legacy_events_indexes.sql +3 -0
- data/db/migrations/25_add_parent_partitions_info_to_partitions.sql +16 -0
- data/db/migrations/26_change_events_stream_revision_type.rb +35 -0
- data/db/migrations/27_drop_events_horizon.sql +3 -0
- data/db/migrations/28_create_maintenance_tasks.sql +8 -0
- data/db/migrations/29_create_event_markers.sql +35 -0
- data/db/migrations/30_improve_partitions_search_in_admin_ui.rb +24 -0
- data/db/migrations/31_drop_events_id_default_value.sql +1 -0
- data/db/migrations/32_create_parittions_triggers.sql +101 -0
- data/db/migrations/9_create_events_horizon.sql +21 -0
- data/docs/AGENTS.fragment.md +696 -0
- data/docs/admin_ui.md +3 -1
- data/docs/appending_events.md +110 -49
- data/docs/configuration.md +69 -36
- data/docs/event_tracing.md +55 -0
- data/docs/events_and_streams.md +54 -30
- data/docs/how_it_works.md +57 -16
- data/docs/linking_events.md +2 -1
- data/docs/maintenance.md +14 -5
- data/docs/multiple_commands.md +30 -6
- data/docs/reading_events.md +208 -43
- data/docs/reading_streams.md +50 -0
- data/docs/replication.md +99 -0
- data/docs/subscriptions.md +165 -35
- data/docs/writing_middleware.md +25 -8
- data/ext/pg_eventstore_ext/extconf.rb +5 -0
- data/ext/pg_eventstore_ext/pg_eventstore_ext.c +74 -0
- data/lib/pg_eventstore/async_runner.rb +63 -0
- data/lib/pg_eventstore/basic_config.rb +15 -0
- data/lib/pg_eventstore/callbacks.rb +7 -5
- data/lib/pg_eventstore/chunks/chunk.rb +31 -0
- data/lib/pg_eventstore/chunks/read_api_events_index_chunk.rb +83 -0
- data/lib/pg_eventstore/chunks/replica_events_index_chunk.rb +35 -0
- data/lib/pg_eventstore/chunks/repository.rb +73 -0
- data/lib/pg_eventstore/chunks/subscription_checkpoint_chunk.rb +48 -0
- data/lib/pg_eventstore/chunks/subscription_events_index_chunk.rb +99 -0
- data/lib/pg_eventstore/chunks.rb +14 -0
- data/lib/pg_eventstore/cli/try_to_delete_subscriptions_set.rb +2 -2
- data/lib/pg_eventstore/client.rb +167 -52
- data/lib/pg_eventstore/commands/append.rb +62 -43
- data/lib/pg_eventstore/commands/delete_event.rb +7 -8
- data/lib/pg_eventstore/commands/delete_stream.rb +3 -3
- data/lib/pg_eventstore/commands/event_modifiers/prepare_link_event.rb +11 -6
- data/lib/pg_eventstore/commands/event_modifiers/prepare_regular_event.rb +12 -7
- data/lib/pg_eventstore/commands/link_to.rb +9 -9
- data/lib/pg_eventstore/commands/multiple.rb +2 -2
- data/lib/pg_eventstore/commands/read.rb +23 -5
- data/lib/pg_eventstore/commands/read_grouped.rb +46 -0
- data/lib/pg_eventstore/commands/read_streams.rb +18 -0
- data/lib/pg_eventstore/commands/read_streams_paginated.rb +56 -0
- data/lib/pg_eventstore/commands/regular_stream_read_paginated.rb +4 -4
- data/lib/pg_eventstore/commands/revision_check/current_revision.rb +51 -0
- data/lib/pg_eventstore/commands/revision_check/event_type_revisions_comparison.rb +46 -0
- data/lib/pg_eventstore/commands/revision_check/expected_revision.rb +135 -0
- data/lib/pg_eventstore/commands/revision_check/stream_revision_check.rb +98 -0
- data/lib/pg_eventstore/commands/revision_check/stream_revision_comparison.rb +36 -0
- data/lib/pg_eventstore/commands/stream_revision.rb +14 -0
- data/lib/pg_eventstore/commands/system_stream_read_paginated.rb +4 -4
- data/lib/pg_eventstore/commands.rb +4 -2
- data/lib/pg_eventstore/config.rb +30 -9
- data/lib/pg_eventstore/connection.rb +22 -37
- data/lib/pg_eventstore/errors.rb +137 -11
- data/lib/pg_eventstore/event.rb +39 -7
- data/lib/pg_eventstore/event_deserializer.rb +5 -4
- data/lib/pg_eventstore/event_global_index.rb +118 -0
- data/lib/pg_eventstore/event_marker.rb +16 -0
- data/lib/pg_eventstore/event_marker_index.rb +25 -0
- data/lib/pg_eventstore/event_serializer.rb +6 -0
- data/lib/pg_eventstore/extensions/acts_as_configurable.rb +88 -0
- data/lib/pg_eventstore/extensions/options_defaults.rb +25 -0
- data/lib/pg_eventstore/extensions/options_extension.rb +42 -13
- data/lib/pg_eventstore/feature_marker.rb +18 -0
- data/lib/pg_eventstore/maintenance.rb +11 -6
- data/lib/pg_eventstore/middleware/event_tracing.rb +53 -0
- data/lib/pg_eventstore/partition.rb +6 -0
- data/lib/pg_eventstore/pg_connection.rb +70 -14
- data/lib/pg_eventstore/queries/event_marker_queries.rb +74 -0
- data/lib/pg_eventstore/queries/event_queries.rb +9 -95
- data/lib/pg_eventstore/queries/events_global_index_queries.rb +131 -0
- data/lib/pg_eventstore/queries/index_filtering_queries.rb +179 -0
- data/lib/pg_eventstore/queries/links_resolver.rb +10 -7
- data/lib/pg_eventstore/queries/maintenance_queries.rb +159 -42
- data/lib/pg_eventstore/queries/partition_queries.rb +46 -104
- data/lib/pg_eventstore/queries/replica_queries.rb +110 -0
- data/lib/pg_eventstore/queries/streams_global_index_queries.rb +163 -0
- data/lib/pg_eventstore/queries/transaction_queries.rb +58 -10
- data/lib/pg_eventstore/queries.rb +29 -1
- data/lib/pg_eventstore/query_builders/basic_filtering.rb +38 -5
- data/lib/pg_eventstore/query_builders/event_markers_filtering.rb +47 -0
- data/lib/pg_eventstore/query_builders/event_markers_index_filtering.rb +275 -0
- data/lib/pg_eventstore/query_builders/event_subscription_positions_filtering.rb +37 -0
- data/lib/pg_eventstore/query_builders/events_filtering.rb +15 -164
- data/lib/pg_eventstore/query_builders/events_global_index_filtering.rb +227 -0
- data/lib/pg_eventstore/query_builders/filters/collection.rb +324 -0
- data/lib/pg_eventstore/query_builders/filters/event_type_filter.rb +37 -0
- data/lib/pg_eventstore/query_builders/filters/filter_row.rb +54 -0
- data/lib/pg_eventstore/query_builders/filters/marker_filter.rb +20 -0
- data/lib/pg_eventstore/query_builders/filters/marker_filter_row.rb +49 -0
- data/lib/pg_eventstore/query_builders/filters/stream_filter.rb +48 -0
- data/lib/pg_eventstore/query_builders/index_based_events_filtering.rb +260 -0
- data/lib/pg_eventstore/query_builders/partitions_filtering.rb +175 -51
- data/lib/pg_eventstore/query_builders/read_cursor/stream_cursor.rb +122 -0
- data/lib/pg_eventstore/query_builders/streams_global_index_filtering.rb +83 -0
- data/lib/pg_eventstore/query_builders/subscription_events_filtering.rb +79 -0
- data/lib/pg_eventstore/query_strategy/async.rb +64 -0
- data/lib/pg_eventstore/query_strategy/foreground.rb +25 -0
- data/lib/pg_eventstore/query_strategy.rb +19 -0
- data/lib/pg_eventstore/raw_event.rb +46 -0
- data/lib/pg_eventstore/rspec/test_helpers.rb +21 -8
- data/lib/pg_eventstore/sql_builder.rb +87 -8
- data/lib/pg_eventstore/stream.rb +14 -17
- data/lib/pg_eventstore/stream_global_index.rb +28 -0
- data/lib/pg_eventstore/subscriptions/basic_runner.rb +4 -4
- data/lib/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rb +5 -17
- data/lib/pg_eventstore/subscriptions/callback_handlers/events_subscription_position_worker_handlers.rb +36 -0
- data/lib/pg_eventstore/subscriptions/callback_handlers/subscription_feeder_handlers.rb +13 -1
- data/lib/pg_eventstore/subscriptions/callback_handlers/subscription_runner_handlers.rb +19 -14
- data/lib/pg_eventstore/subscriptions/events_processor.rb +21 -19
- data/lib/pg_eventstore/subscriptions/events_processor_consumer/multiple.rb +63 -0
- data/lib/pg_eventstore/subscriptions/events_processor_consumer/replica.rb +68 -0
- data/lib/pg_eventstore/subscriptions/events_processor_consumer/single.rb +62 -0
- data/lib/pg_eventstore/subscriptions/events_processor_consumer.rb +44 -0
- data/lib/pg_eventstore/subscriptions/events_subscription_position_worker.rb +68 -0
- data/lib/pg_eventstore/subscriptions/queries/event_subscription_position_queries.rb +177 -0
- data/lib/pg_eventstore/subscriptions/queries/subscription_command_queries.rb +5 -5
- data/lib/pg_eventstore/subscriptions/queries/subscription_queries.rb +80 -56
- data/lib/pg_eventstore/subscriptions/queries/subscriptions_set_command_queries.rb +2 -2
- data/lib/pg_eventstore/subscriptions/queries/subscriptions_set_queries.rb +1 -1
- data/lib/pg_eventstore/subscriptions/replica_subscription_handler.rb +140 -0
- data/lib/pg_eventstore/subscriptions/replica_subscription_runner.rb +9 -0
- data/lib/pg_eventstore/subscriptions/subscription.rb +9 -7
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/collection.rb +36 -0
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/index_read_strategy.rb +82 -0
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/replication_strategy.rb +75 -0
- data/lib/pg_eventstore/subscriptions/subscription_feed_strategy.rb +31 -0
- data/lib/pg_eventstore/subscriptions/subscription_feeder.rb +26 -2
- data/lib/pg_eventstore/subscriptions/subscription_handler_performance.rb +5 -5
- data/lib/pg_eventstore/subscriptions/subscription_runner.rb +20 -22
- data/lib/pg_eventstore/subscriptions/subscription_runner_commands/reset_position.rb +1 -1
- data/lib/pg_eventstore/subscriptions/subscription_runners_feeder.rb +10 -11
- data/lib/pg_eventstore/subscriptions/subscriptions_lifecycle.rb +0 -12
- data/lib/pg_eventstore/subscriptions/subscriptions_manager.rb +84 -29
- data/lib/pg_eventstore/{subscriptions/synchronized_array.rb → synchronized_array.rb} +15 -0
- data/lib/pg_eventstore/tasks/setup.rake +32 -33
- data/lib/pg_eventstore/utils.rb +39 -0
- data/lib/pg_eventstore/version.rb +1 -1
- data/lib/pg_eventstore/web/application.rb +104 -20
- data/lib/pg_eventstore/web/paginator/base_collection.rb +5 -1
- data/lib/pg_eventstore/web/paginator/event_types_collection.rb +14 -4
- data/lib/pg_eventstore/web/paginator/events_collection.rb +29 -33
- data/lib/pg_eventstore/web/paginator/helpers.rb +19 -12
- data/lib/pg_eventstore/web/paginator/markers_collection.rb +48 -0
- data/lib/pg_eventstore/web/paginator/stream_contexts_collection.rb +13 -2
- data/lib/pg_eventstore/web/paginator/stream_ids_collection.rb +21 -11
- data/lib/pg_eventstore/web/paginator/stream_names_collection.rb +18 -4
- data/lib/pg_eventstore/web/paginator/streams_collection.rb +95 -0
- data/lib/pg_eventstore/web/public/javascripts/pg_eventstore.js +49 -22
- data/lib/pg_eventstore/web/subscriptions/helpers.rb +2 -2
- data/lib/pg_eventstore/web/subscriptions/set_collection.rb +1 -1
- data/lib/pg_eventstore/web/subscriptions/subscriptions.rb +1 -1
- data/lib/pg_eventstore/web/subscriptions/with_state/set_collection.rb +1 -1
- data/lib/pg_eventstore/web/subscriptions/with_state/subscriptions.rb +1 -1
- data/lib/pg_eventstore/web/views/home/dashboard.erb +11 -9
- data/lib/pg_eventstore/web/views/home/partials/event_filter.erb +18 -5
- data/lib/pg_eventstore/web/views/home/partials/events.erb +38 -1
- data/lib/pg_eventstore/web/views/home/partials/markers_filter.erb +18 -0
- data/lib/pg_eventstore/web/views/layouts/application.erb +6 -0
- data/lib/pg_eventstore/web/views/streams/index.erb +110 -0
- data/lib/pg_eventstore/web/views/streams/partials/streams.erb +11 -0
- data/lib/pg_eventstore/web/views/subscriptions/index.erb +4 -1
- data/lib/pg_eventstore/web.rb +2 -0
- data/lib/pg_eventstore.rb +26 -63
- data/pg_eventstore.gemspec +6 -4
- data/sig/interfaces/_raw_events_handler.rbs +3 -0
- data/sig/interfaces/subscription_handler.rbs +1 -1
- data/sig/pg/result.rbs +9 -0
- data/sig/pg_eventstore/async_runner.rbs +13 -0
- data/sig/pg_eventstore/basic_config.rbs +9 -0
- data/sig/pg_eventstore/chunks/chunk.rbs +13 -0
- data/sig/pg_eventstore/chunks/read_api_events_index_chunk.rbs +30 -0
- data/sig/pg_eventstore/chunks/replica_events_index_chunk.rbs +11 -0
- data/sig/pg_eventstore/chunks/repository.rbs +22 -0
- data/sig/pg_eventstore/chunks/subscription_checkpoint_chunk.rbs +18 -0
- data/sig/pg_eventstore/chunks/subscription_events_index_chunk.rbs +37 -0
- data/sig/pg_eventstore/client.rbs +41 -43
- data/sig/pg_eventstore/commands/append.rbs +11 -25
- data/sig/pg_eventstore/commands/event_modifiers/prepare_link_event.rbs +9 -12
- data/sig/pg_eventstore/commands/event_modifiers/prepare_regular_event.rbs +5 -4
- data/sig/pg_eventstore/commands/link_to.rbs +6 -11
- data/sig/pg_eventstore/commands/multiple.rbs +1 -1
- data/sig/pg_eventstore/commands/read.rbs +2 -5
- data/sig/pg_eventstore/commands/read_grouped.rbs +7 -0
- data/sig/pg_eventstore/commands/read_streams.rbs +7 -0
- data/sig/pg_eventstore/commands/read_streams_paginated.rbs +16 -0
- data/sig/pg_eventstore/commands/regular_stream_read_paginated.rbs +9 -17
- data/sig/pg_eventstore/commands/revision_check/current_revision.rbs +25 -0
- data/sig/pg_eventstore/commands/revision_check/event_type_revisions_comparison.rbs +14 -0
- data/sig/pg_eventstore/commands/revision_check/expected_revision.rbs +67 -0
- data/sig/pg_eventstore/commands/revision_check/stream_revision_check.rbs +20 -0
- data/sig/pg_eventstore/commands/revision_check/stream_revision_comparison.rbs +9 -0
- data/sig/pg_eventstore/commands/stream_revision.rbs +7 -0
- data/sig/pg_eventstore/commands/system_stream_read_paginated.rbs +9 -14
- data/sig/pg_eventstore/config.rbs +15 -6
- data/sig/pg_eventstore/connection.rbs +11 -18
- data/sig/pg_eventstore/errors.rbs +64 -34
- data/sig/pg_eventstore/event.rbs +20 -6
- data/sig/pg_eventstore/event_deserializer.rbs +5 -10
- data/sig/pg_eventstore/event_global_index.rbs +60 -0
- data/sig/pg_eventstore/event_marker.rbs +9 -0
- data/sig/pg_eventstore/event_marker_index.rbs +12 -0
- data/sig/pg_eventstore/extensions/acts_as_configurable.rbs +29 -0
- data/sig/pg_eventstore/extensions/options_defaults.rbs +7 -0
- data/sig/pg_eventstore/extensions/options_extension.rbs +9 -1
- data/sig/pg_eventstore/feature_marker.rbs +10 -0
- data/sig/pg_eventstore/maintenance.rbs +12 -8
- data/sig/pg_eventstore/middleware/event_trace.rbs +14 -0
- data/sig/pg_eventstore/partition.rbs +2 -4
- data/sig/pg_eventstore/pg_connection.rbs +8 -0
- data/sig/pg_eventstore/queries/event_marker_queries.rbs +21 -0
- data/sig/pg_eventstore/queries/event_queries.rbs +6 -38
- data/sig/pg_eventstore/queries/events_global_index_queries.rbs +37 -0
- data/sig/pg_eventstore/queries/index_filtering_queries.rbs +50 -0
- data/sig/pg_eventstore/queries/links_resolver.rbs +7 -11
- data/sig/pg_eventstore/queries/maintenance_queries.rbs +12 -9
- data/sig/pg_eventstore/queries/partition_queries.rbs +32 -67
- data/sig/pg_eventstore/queries/replica_queries.rbs +31 -0
- data/sig/pg_eventstore/queries/streams_global_index_queries.rbs +39 -0
- data/sig/pg_eventstore/queries/transaction_queries.rbs +4 -2
- data/sig/pg_eventstore/queries.rbs +11 -21
- data/sig/pg_eventstore/query_builders/basic_filtering.rbs +10 -3
- data/sig/pg_eventstore/query_builders/event_markers_filtering.rbs +17 -0
- data/sig/pg_eventstore/query_builders/event_markers_index_filtering.rbs +69 -0
- data/sig/pg_eventstore/query_builders/event_subscription_positions_filtering.rbs +15 -0
- data/sig/pg_eventstore/query_builders/events_filtering_query.rbs +9 -51
- data/sig/pg_eventstore/query_builders/events_global_index_filtering.rbs +68 -0
- data/sig/pg_eventstore/query_builders/filters/collection.rbs +84 -0
- data/sig/pg_eventstore/query_builders/filters/event_type_filter.rbs +19 -0
- data/sig/pg_eventstore/query_builders/filters/filter_row.rbs +21 -0
- data/sig/pg_eventstore/query_builders/filters/marker_filter.rbs +13 -0
- data/sig/pg_eventstore/query_builders/filters/marker_filter_row.rbs +19 -0
- data/sig/pg_eventstore/query_builders/filters/stream_filter.rbs +24 -0
- data/sig/pg_eventstore/query_builders/index_based_events_filtering.rbs +60 -0
- data/sig/pg_eventstore/query_builders/partitions_filtering.rbs +29 -10
- data/sig/pg_eventstore/query_builders/read_cursor/stream_cursor.rbs +47 -0
- data/sig/pg_eventstore/query_builders/streams_global_index_filtering.rbs +27 -0
- data/sig/pg_eventstore/query_builders/subscription_events_filtering.rbs +26 -0
- data/sig/pg_eventstore/query_strategy/async.rbs +17 -0
- data/sig/pg_eventstore/query_strategy/foreground.rbs +11 -0
- data/sig/pg_eventstore/query_strategy.rbs +7 -0
- data/sig/pg_eventstore/raw_event.rbs +20 -0
- data/sig/pg_eventstore/sql_builder.rbs +32 -10
- data/sig/pg_eventstore/stream.rbs +10 -18
- data/sig/pg_eventstore/stream_global_index.rbs +14 -0
- data/sig/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rbs +5 -4
- data/sig/pg_eventstore/subscriptions/callback_handlers/events_subscription_position_worker_handlers.rbs +9 -0
- data/sig/pg_eventstore/subscriptions/callback_handlers/subscription_feeder_handlers.rbs +17 -12
- data/sig/pg_eventstore/subscriptions/callback_handlers/subscription_runner_handlers.rbs +16 -8
- data/sig/pg_eventstore/subscriptions/event_subscription_position_queries.rbs +30 -0
- data/sig/pg_eventstore/subscriptions/events_processor.rbs +12 -5
- data/sig/pg_eventstore/subscriptions/events_processor_consumer/multiple.rbs +17 -0
- data/sig/pg_eventstore/subscriptions/events_processor_consumer/replica.rbs +17 -0
- data/sig/pg_eventstore/subscriptions/events_processor_consumer/single.rbs +17 -0
- data/sig/pg_eventstore/subscriptions/events_processor_consumer.rbs +14 -0
- data/sig/pg_eventstore/subscriptions/events_subscription_position_worker.rbs +28 -0
- data/sig/pg_eventstore/subscriptions/queries/subscription_queries.rbs +18 -50
- data/sig/pg_eventstore/subscriptions/replica_subscription_handler.rbs +33 -0
- data/sig/pg_eventstore/subscriptions/replica_subscription_runner.rbs +4 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/collection.rbs +14 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/index_read_strategy.rbs +23 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/replication_strategy.rbs +23 -0
- data/sig/pg_eventstore/subscriptions/subscription_feed_strategy.rbs +11 -0
- data/sig/pg_eventstore/subscriptions/subscription_feeder.rbs +13 -10
- data/sig/pg_eventstore/subscriptions/subscription_handler_performance.rbs +1 -1
- data/sig/pg_eventstore/subscriptions/subscription_runner.rbs +13 -5
- data/sig/pg_eventstore/subscriptions/subscription_runners_feeder.rbs +5 -5
- data/sig/pg_eventstore/subscriptions/subscriptions_lifecycle.rbs +4 -6
- data/sig/pg_eventstore/subscriptions/subscriptions_manager.rbs +29 -43
- data/sig/pg_eventstore/synchronized_array.rbs +4 -0
- data/sig/pg_eventstore/utils.rbs +18 -11
- data/sig/pg_eventstore/web/application.rbs +13 -3
- data/sig/pg_eventstore/web/paginator/base_collection.rbs +2 -0
- data/sig/pg_eventstore/web/paginator/event_types_collection.rbs +4 -0
- data/sig/pg_eventstore/web/paginator/events_collection.rbs +11 -11
- data/sig/pg_eventstore/web/paginator/helpers.rbs +6 -15
- data/sig/pg_eventstore/web/paginator/markers_collection.rbs +13 -0
- data/sig/pg_eventstore/web/paginator/stream_contexts_collection.rbs +4 -0
- data/sig/pg_eventstore/web/paginator/stream_names_collection.rbs +4 -0
- data/sig/pg_eventstore/web/paginator/streams_collection.rbs +30 -0
- data/sig/pg_eventstore.rbs +8 -26
- metadata +181 -21
- data/lib/pg_eventstore/commands/all_stream_read_grouped.rb +0 -69
- data/lib/pg_eventstore/commands/regular_stream_read_grouped.rb +0 -31
- data/lib/pg_eventstore/subscriptions/queries/service_queries.rb +0 -73
- data/lib/pg_eventstore/subscriptions/subscription_position_evaluation.rb +0 -195
- data/lib/pg_eventstore/web/views/home/partials/system_stream_filter.erb +0 -15
- data/sig/pg_eventstore/commands/all_stream_read_grouped.rbs +0 -16
- data/sig/pg_eventstore/commands/regular_stream_read_grouped.rbs +0 -8
- data/sig/pg_eventstore/subscriptions/queries/service_queries.rbs +0 -15
- data/sig/pg_eventstore/subscriptions/subscription_position_evaluation.rbs +0 -53
- data/sig/pg_eventstore/subscriptions/synchronized_array.rbs +0 -4
- /data/sig/interfaces/{_raw_event_handler.rbs → raw_event_handler.rbs} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module Chunks
|
|
3
|
+
class SubscriptionEventsIndexChunk
|
|
4
|
+
class RawEventWithSubscriptionPosition
|
|
5
|
+
include Extensions::OptionsExtension
|
|
6
|
+
include Extensions::OptionsDefaults
|
|
7
|
+
|
|
8
|
+
attr_accessor attributes: Hash[String, untyped]
|
|
9
|
+
attr_accessor subscription_position: Integer
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
include Chunk[EventGlobalIndex::SubscriptionRepr, RawEventWithSubscriptionPosition]
|
|
13
|
+
|
|
14
|
+
MAX_PARTITIONS_TO_RESOLVE_PER_CALL: Integer
|
|
15
|
+
|
|
16
|
+
@connection: Connection
|
|
17
|
+
@raw_events: Array[RawEventWithSubscriptionPosition]
|
|
18
|
+
@indexes: Array[EventGlobalIndex::SubscriptionRepr]
|
|
19
|
+
@query_strategy: QueryStrategy
|
|
20
|
+
@resolve_link_tos: bool
|
|
21
|
+
@resolved: bool
|
|
22
|
+
|
|
23
|
+
def initialize: (Array[EventGlobalIndex::SubscriptionRepr] indexes, Connection connection,
|
|
24
|
+
QueryStrategy query_strategy, bool resolve_link_tos) -> void
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def events_global_index_queries: -> EventsGlobalIndexQueries
|
|
29
|
+
|
|
30
|
+
def resolve_indexes: -> void
|
|
31
|
+
|
|
32
|
+
def resolved?: -> bool
|
|
33
|
+
|
|
34
|
+
def sort: (Array[RawEventWithSubscriptionPosition] raw_events) -> Array[RawEventWithSubscriptionPosition]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -1,65 +1,63 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
class Client
|
|
3
3
|
# _@param_ `config`
|
|
4
|
-
def initialize: (
|
|
5
|
-
|
|
6
|
-
# _@param_ `stream`
|
|
7
|
-
#
|
|
8
|
-
# _@param_ `events_or_event`
|
|
9
|
-
#
|
|
10
|
-
# _@param_ `options`
|
|
11
|
-
#
|
|
12
|
-
# _@param_ `middlewares` — provide a list of middleware names to override a config's middlewares
|
|
4
|
+
def initialize: (Config config) -> void
|
|
5
|
+
|
|
13
6
|
def append_to_stream: (
|
|
14
|
-
|
|
15
|
-
(
|
|
7
|
+
Stream stream,
|
|
8
|
+
(Event | ::Array[Event]) events_or_event,
|
|
16
9
|
?options: ::Hash[untyped, untyped],
|
|
17
|
-
?middlewares: ::Array[
|
|
18
|
-
) -> (
|
|
10
|
+
?middlewares: ::Array[Symbol]?
|
|
11
|
+
) -> (Event | ::Array[Event])
|
|
19
12
|
|
|
20
|
-
def multiple: () { () -> untyped } -> untyped
|
|
13
|
+
def multiple: (?read_only: bool) { () -> untyped } -> untyped
|
|
21
14
|
|
|
22
|
-
|
|
23
|
-
#
|
|
24
|
-
# _@param_ `options` — request options
|
|
25
|
-
#
|
|
26
|
-
# _@param_ `middlewares` — provide a list of middleware names to override a config's middlewares
|
|
27
|
-
def read: (PgEventstore::Stream stream, ?options: ::Hash[untyped, untyped], ?middlewares: ::Array[::Symbol]?) -> ::Array[PgEventstore::Event]
|
|
15
|
+
def read: (Stream stream, ?options: ::Hash[untyped, untyped], ?middlewares: ::Array[::Symbol]?) -> ::Array[Event]
|
|
28
16
|
|
|
29
|
-
def read_grouped: (Stream stream, ?options: Hash[untyped, untyped], ?middlewares: ::Array[::Symbol]?) -> ::Array[
|
|
17
|
+
def read_grouped: (Stream stream, ?options: Hash[untyped, untyped], ?middlewares: ::Array[::Symbol]?) -> ::Array[Event]
|
|
30
18
|
|
|
31
19
|
# Temporary skip RBS checks of this method. It doesn't play well with Enumerator under certain circumstances
|
|
32
20
|
%a{rbs:test:skip} def read_paginated: (
|
|
33
|
-
|
|
34
|
-
) -> ::Enumerator[Array[
|
|
35
|
-
|
|
36
|
-
# _@param_ `stream`
|
|
37
|
-
#
|
|
38
|
-
# _@param_ `events_or_event`
|
|
39
|
-
#
|
|
40
|
-
# _@param_ `options`
|
|
41
|
-
#
|
|
42
|
-
# _@param_ `middlewares` — provide a list of middleware names to use. Defaults to empty array, meaning no middlewares will be applied to the "link" event
|
|
21
|
+
Stream stream, ?options: ::Hash[untyped, untyped], ?middlewares: ::Array[::Symbol]?
|
|
22
|
+
) -> ::Enumerator[Array[Event], void]
|
|
23
|
+
|
|
43
24
|
def link_to: (
|
|
44
|
-
|
|
45
|
-
(
|
|
25
|
+
Stream stream,
|
|
26
|
+
(Event | ::Array[Event]) events_or_event,
|
|
46
27
|
?options: ::Hash[untyped, untyped],
|
|
47
28
|
?middlewares: ::Array[::Symbol]
|
|
48
|
-
) -> (
|
|
29
|
+
) -> (Event | ::Array[Event])
|
|
30
|
+
|
|
31
|
+
attr_accessor config: Config
|
|
32
|
+
|
|
33
|
+
def read_streams: (?options: ::Hash[untyped, untyped]) -> Array[Stream]
|
|
34
|
+
|
|
35
|
+
def read_streams_paginated: (?options: ::Hash[untyped, untyped]) -> ::Enumerator[Array[Stream], void]
|
|
36
|
+
|
|
37
|
+
def stream_revision: (Stream stream) -> Integer
|
|
38
|
+
|
|
39
|
+
private
|
|
40
|
+
|
|
41
|
+
def event_deserializer: (Array[Middleware] middlewares) -> EventDeserializer
|
|
42
|
+
|
|
43
|
+
def event_marker_queries: -> EventMarkerQueries
|
|
44
|
+
|
|
45
|
+
def event_subscription_position_queries: -> EventSubscriptionPositionQueries
|
|
46
|
+
|
|
47
|
+
def events_global_index_queries: -> EventsGlobalIndexQueries
|
|
48
|
+
|
|
49
|
+
def event_queries: -> EventQueries
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
def middlewares: (?::Array[::Symbol]? middlewares) -> ::Array[PgEventstore::Middleware]
|
|
51
|
+
def index_filtering_queries: -> IndexFilteringQueries
|
|
52
52
|
|
|
53
|
-
def
|
|
53
|
+
def partition_queries: () -> PartitionQueries
|
|
54
54
|
|
|
55
|
-
def
|
|
55
|
+
def streams_global_index_queries: -> StreamsGlobalIndexQueries
|
|
56
56
|
|
|
57
|
-
def transaction_queries: () ->
|
|
57
|
+
def transaction_queries: () -> TransactionQueries
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
def event_queries: (::Array[PgEventstore::Middleware] middlewares) -> PgEventstore::EventQueries
|
|
59
|
+
def middlewares: (?::Array[::Symbol]? middlewares) -> ::Array[Middleware]
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
attr_accessor config: PgEventstore::Config
|
|
61
|
+
def connection: () -> Connection
|
|
64
62
|
end
|
|
65
63
|
end
|
|
@@ -1,33 +1,19 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
module Commands
|
|
3
|
-
class Append <
|
|
4
|
-
# _@param_ `stream`
|
|
5
|
-
#
|
|
6
|
-
# _@param_ `events`
|
|
7
|
-
#
|
|
8
|
-
# _@param_ `options`
|
|
9
|
-
#
|
|
10
|
-
# _@param_ `event_modifier`
|
|
11
|
-
#
|
|
12
|
-
# _@return_ — persisted events
|
|
3
|
+
class Append < AbstractCommand
|
|
13
4
|
def call: (
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
Stream stream,
|
|
6
|
+
*Event events,
|
|
7
|
+
event_modifier: _EventModifier,
|
|
8
|
+
deserializer: EventDeserializer,
|
|
9
|
+
?options: ::Hash[untyped, untyped]
|
|
10
|
+
) -> ::Array[Event]
|
|
19
11
|
|
|
20
|
-
|
|
21
|
-
#
|
|
22
|
-
# _@param_ `events`
|
|
23
|
-
def create_partitions: (PgEventstore::Stream stream, ::Array[PgEventstore::Event] events) -> void
|
|
12
|
+
private
|
|
24
13
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
#
|
|
29
|
-
# _@param_ `stream`
|
|
30
|
-
def assert_expected_revision!: (Integer revision, (Symbol | Integer) expected_revision, PgEventstore::Stream stream) -> void
|
|
14
|
+
def feature_markers: (Event event) -> Array[String]
|
|
15
|
+
|
|
16
|
+
def prepare_partitions: (Stream stream, ::Array[Event] events) -> Array[Partition]
|
|
31
17
|
end
|
|
32
18
|
end
|
|
33
19
|
end
|
|
@@ -2,22 +2,19 @@ module PgEventstore
|
|
|
2
2
|
module Commands
|
|
3
3
|
module EventModifiers
|
|
4
4
|
class PrepareLinkEvent
|
|
5
|
-
|
|
6
|
-
def initialize: (PgEventstore::PartitionQueries partition_queries) -> void
|
|
5
|
+
@serializer: EventSerializer
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
#
|
|
10
|
-
# _@param_ `revision`
|
|
11
|
-
def call: (PgEventstore::Event event, Integer revision) -> PgEventstore::Event
|
|
7
|
+
attr_reader partition_queries: PartitionQueries
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
#
|
|
15
|
-
# _@return_ — partition id
|
|
16
|
-
def partition_id: (PgEventstore::Event event) -> Integer
|
|
9
|
+
attr_reader partitions: Hash[untyped, untyped]
|
|
17
10
|
|
|
18
|
-
|
|
11
|
+
def initialize: (PartitionQueries partition_queries, EventSerializer serializer) -> void
|
|
19
12
|
|
|
20
|
-
|
|
13
|
+
def call: (Event event) -> Event
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def partition_id: (Event event) -> Integer
|
|
21
18
|
end
|
|
22
19
|
end
|
|
23
20
|
end
|
|
@@ -2,10 +2,11 @@ module PgEventstore
|
|
|
2
2
|
module Commands
|
|
3
3
|
module EventModifiers
|
|
4
4
|
class PrepareRegularEvent
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
@serializer: EventSerializer
|
|
6
|
+
|
|
7
|
+
def initialize: (EventSerializer serializer) -> void
|
|
8
|
+
|
|
9
|
+
def call: (Event event) -> Event
|
|
9
10
|
end
|
|
10
11
|
end
|
|
11
12
|
end
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
module Commands
|
|
3
|
-
class LinkTo <
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
# _@param_ `events`
|
|
7
|
-
#
|
|
8
|
-
# _@param_ `options`
|
|
9
|
-
#
|
|
10
|
-
# _@return_ — persisted events
|
|
11
|
-
def call: (PgEventstore::Stream stream, *PgEventstore::Event events, ?options: ::Hash[untyped, untyped]) -> ::Array[PgEventstore::Event]
|
|
3
|
+
class LinkTo < AbstractCommand
|
|
4
|
+
def call: (Stream stream, *Event events, event_modifier: _EventModifier, deserializer: EventDeserializer,
|
|
5
|
+
?options: ::Hash[untyped, untyped]) -> ::Array[Event]
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
def check_events_presence: (::Array[Event] events) -> void
|
|
15
10
|
end
|
|
16
11
|
end
|
|
17
12
|
end
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
module Commands
|
|
3
|
-
class Read <
|
|
4
|
-
|
|
5
|
-
#
|
|
6
|
-
# _@param_ `options` — request options
|
|
7
|
-
def call: (PgEventstore::Stream stream, ?options: ::Hash[untyped, untyped]) -> ::Array[PgEventstore::Event]
|
|
3
|
+
class Read < AbstractCommand
|
|
4
|
+
def call: (Stream stream, deserializer: EventDeserializer, ?options: ::Hash[untyped, untyped]) -> ::Array[Event]
|
|
8
5
|
end
|
|
9
6
|
end
|
|
10
7
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module Commands
|
|
3
|
+
class ReadStreamsPaginated < AbstractCommand
|
|
4
|
+
# Skip this type check because rbs duplicates calls to Enumerator#next
|
|
5
|
+
%a{rbs:test:skip} def call: (?options: ::Hash[untyped, untyped]) -> ::Enumerator[Array[Stream], void]
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
|
|
9
|
+
def calc_next_position: (Array[StreamGlobalIndex] indexes, String? | Symbol? direction) -> Integer
|
|
10
|
+
|
|
11
|
+
def end_reached?: (Array[Stream] streams, Integer max_count) -> bool
|
|
12
|
+
|
|
13
|
+
def forwards?: (String? | Symbol? direction) -> bool
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
module Commands
|
|
3
|
-
class RegularStreamReadPaginated <
|
|
4
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
%a{rbs:test:skip} def call: (PgEventstore::Stream stream, ?options: ::Hash[untyped, untyped]) -> ::Enumerator[Array[PgEventstore::Event], void]
|
|
3
|
+
class RegularStreamReadPaginated < AbstractCommand
|
|
4
|
+
# Skip this type check because rbs duplicates calls to Enumerator#next
|
|
5
|
+
%a{rbs:test:skip} def call: (Stream stream, deserializer: EventDeserializer,
|
|
6
|
+
?options: ::Hash[untyped, untyped]) -> ::Enumerator[Array[Event], void]
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
#
|
|
11
|
-
# _@param_ `max_count`
|
|
12
|
-
def end_reached?: (::Array[PgEventstore::Event] events, Integer max_count) -> bool
|
|
8
|
+
private
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
#
|
|
18
|
-
# _@param_ `direction`
|
|
19
|
-
def calc_next_revision: (::Array[PgEventstore::Event] events, (String | Symbol)? direction) -> Integer
|
|
10
|
+
def end_reached?: (::Array[Event] events, Integer max_count) -> bool
|
|
11
|
+
|
|
12
|
+
def calc_next_revision: (::Array[Event] events, (String | Symbol)? direction) -> Integer
|
|
20
13
|
|
|
21
|
-
# _@param_ `direction`
|
|
22
14
|
def forwards?: ((String | Symbol)? direction) -> bool
|
|
23
15
|
|
|
24
|
-
def read_cmd: () ->
|
|
16
|
+
def read_cmd: () -> Commands::Read
|
|
25
17
|
end
|
|
26
18
|
end
|
|
27
19
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module Commands
|
|
3
|
+
module RevisionCheck
|
|
4
|
+
class CurrentRevision
|
|
5
|
+
class StreamRevision
|
|
6
|
+
include Extensions::OptionsExtension
|
|
7
|
+
include Extensions::OptionsDefaults
|
|
8
|
+
|
|
9
|
+
attr_accessor revision: Integer
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class EventTypeRevisions
|
|
13
|
+
include Extensions::OptionsExtension
|
|
14
|
+
include Extensions::OptionsDefaults
|
|
15
|
+
|
|
16
|
+
attr_accessor revisions: Array[EventGlobalIndex::RevisionCheckRepr]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.build: (Stream stream, Integer stream_revision,
|
|
20
|
+
ExpectedRevision::StreamRevision? | ExpectedRevision::EventTypeRevisions? expected_revision,
|
|
21
|
+
IndexFilteringQueries index_filtering_queries) -> (StreamRevision | EventTypeRevisions)?
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module Commands
|
|
3
|
+
module RevisionCheck
|
|
4
|
+
class EventTypeRevisionsComparison
|
|
5
|
+
def self.verdict: (
|
|
6
|
+
Integer current_revision,
|
|
7
|
+
Symbol | Integer expected_revision,
|
|
8
|
+
?expected_markers: Array[String]?,
|
|
9
|
+
?event_type: String | Symbol
|
|
10
|
+
) -> WrongExpectedTypesRevisionError::Verdict?
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module Commands
|
|
3
|
+
module RevisionCheck
|
|
4
|
+
class ExpectedRevision
|
|
5
|
+
class StreamRevision
|
|
6
|
+
include Extensions::OptionsExtension
|
|
7
|
+
include Extensions::OptionsDefaults
|
|
8
|
+
|
|
9
|
+
attr_accessor revision: Symbol | Integer
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class EventTypeRevision
|
|
13
|
+
include Extensions::OptionsExtension
|
|
14
|
+
include Extensions::OptionsDefaults
|
|
15
|
+
|
|
16
|
+
attr_accessor expected_revision: Symbol | Integer
|
|
17
|
+
attr_accessor event_type: String?
|
|
18
|
+
attr_accessor sequence_number: Integer
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class EventTypeRevisionWithMarkers
|
|
22
|
+
include Extensions::OptionsExtension
|
|
23
|
+
include Extensions::OptionsDefaults
|
|
24
|
+
|
|
25
|
+
attr_accessor expected_revision: Symbol | Integer
|
|
26
|
+
attr_accessor event_type: String?
|
|
27
|
+
attr_accessor markers: Array[String]
|
|
28
|
+
attr_accessor sequence_number: Integer
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class MarkersRevision
|
|
32
|
+
include Extensions::OptionsExtension
|
|
33
|
+
include Extensions::OptionsDefaults
|
|
34
|
+
|
|
35
|
+
attr_accessor expected_revision: Symbol | Integer
|
|
36
|
+
attr_accessor markers: Array[String]
|
|
37
|
+
attr_accessor sequence_number: Integer
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class EventTypeRevisions
|
|
41
|
+
include Extensions::OptionsExtension
|
|
42
|
+
include Extensions::OptionsDefaults
|
|
43
|
+
|
|
44
|
+
attr_accessor revisions: Array[EventTypeRevision | EventTypeRevisionWithMarkers | MarkersRevision]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def self.build: (
|
|
48
|
+
# stream revision
|
|
49
|
+
(Symbol | Integer)? |
|
|
50
|
+
Hash[
|
|
51
|
+
String,
|
|
52
|
+
# <event type>-to-<stream revision of the event>
|
|
53
|
+
Symbol | Integer |
|
|
54
|
+
# <event type>-to-<stream revision of the event with markers>
|
|
55
|
+
{ expected_revision: Symbol | Integer, ?markers: Array[String] }] |
|
|
56
|
+
# <any event type>-to-<stream revision of the event with markers>
|
|
57
|
+
{ any: { expected_revision: Symbol | Integer, ?markers: Array[String] } } expected_revision) -> (StreamRevision | EventTypeRevisions)?
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
def self.extract_markers: (Hash[untyped, untyped] hash) -> Array[String]
|
|
62
|
+
|
|
63
|
+
def self.extract_expected_revision: (Hash[untyped, untyped] hash) -> (Symbol | Integer)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module Commands
|
|
3
|
+
module RevisionCheck
|
|
4
|
+
class StreamRevisionCheck
|
|
5
|
+
def self.assert_eq!: ((CurrentRevision::StreamRevision | CurrentRevision::EventTypeRevisions)?,
|
|
6
|
+
(ExpectedRevision::StreamRevision | ExpectedRevision::EventTypeRevisions)?, Stream stream) -> void
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def self.find_index: (
|
|
11
|
+
Commands::RevisionCheck::ExpectedRevision::EventTypeRevision |
|
|
12
|
+
Commands::RevisionCheck::ExpectedRevision::EventTypeRevisionWithMarkers |
|
|
13
|
+
Commands::RevisionCheck::ExpectedRevision::MarkersRevision
|
|
14
|
+
expected_revision,
|
|
15
|
+
Hash[Integer, EventGlobalIndex::RevisionCheckRepr] rev_check_indexes
|
|
16
|
+
) -> EventGlobalIndex::RevisionCheckRepr
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
module Commands
|
|
3
|
-
class SystemStreamReadPaginated <
|
|
4
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
%a{rbs:test:skip} def call: (PgEventstore::Stream stream, ?options: ::Hash[untyped, untyped]) -> ::Enumerator[Array[PgEventstore::Event], void]
|
|
3
|
+
class SystemStreamReadPaginated < AbstractCommand
|
|
4
|
+
# Skip this type check because rbs duplicates calls to Enumerator#next
|
|
5
|
+
%a{rbs:test:skip} def call: (Stream stream, deserializer: EventDeserializer,
|
|
6
|
+
?options: ::Hash[untyped, untyped]) -> ::Enumerator[Array[Event], void]
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
#
|
|
11
|
-
# _@param_ `max_count`
|
|
12
|
-
def end_reached?: (::Array[PgEventstore::Event] events, Integer max_count) -> bool
|
|
8
|
+
private
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def calc_next_position: (::Array[PgEventstore::Event] events, (String | Symbol)? direction) -> Integer
|
|
10
|
+
def end_reached?: (::Array[Event] events, Integer max_count) -> bool
|
|
11
|
+
|
|
12
|
+
def calc_next_position: (::Array[Event] events, (String | Symbol)? direction) -> Integer
|
|
18
13
|
|
|
19
14
|
# _@param_ `direction`
|
|
20
15
|
def forwards?: ((String | Symbol)? direction) -> bool
|
|
21
16
|
|
|
22
|
-
def read_cmd: () ->
|
|
17
|
+
def read_cmd: () -> Commands::Read
|
|
23
18
|
end
|
|
24
19
|
end
|
|
25
20
|
end
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
|
-
class Config
|
|
3
|
-
|
|
2
|
+
class Config < BasicConfig
|
|
3
|
+
module NodeRole
|
|
4
|
+
PRIMARY: Symbol
|
|
5
|
+
REPLICA: Symbol
|
|
6
|
+
STANDALONE: Symbol
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
|
|
8
|
+
def self.maintainable: -> Array[Symbol]
|
|
9
|
+
|
|
10
|
+
def self.writable: -> Array[Symbol]
|
|
11
|
+
end
|
|
7
12
|
|
|
8
13
|
def connection_options: () -> ::Hash[untyped, untyped]
|
|
9
14
|
|
|
@@ -21,8 +26,6 @@ module PgEventstore
|
|
|
21
26
|
# _@param_ `options`
|
|
22
27
|
def init_default_values: (::Hash[untyped, untyped] options) -> void
|
|
23
28
|
|
|
24
|
-
attr_reader name: untyped
|
|
25
|
-
|
|
26
29
|
attr_accessor pg_uri: String
|
|
27
30
|
|
|
28
31
|
# _@return_ — Number of events to return in one response when reading from a stream
|
|
@@ -51,5 +54,11 @@ module PgEventstore
|
|
|
51
54
|
attr_accessor subscriptions_set_retries_interval: Integer
|
|
52
55
|
|
|
53
56
|
attr_accessor subscription_graceful_shutdown_timeout: Integer | Float
|
|
57
|
+
|
|
58
|
+
attr_accessor events_subscription_position_update_interval: Integer | Float
|
|
59
|
+
|
|
60
|
+
attr_accessor eventstore_role: Symbol
|
|
61
|
+
|
|
62
|
+
attr_accessor max_events_to_replicate: Integer
|
|
54
63
|
end
|
|
55
64
|
end
|
|
@@ -1,32 +1,25 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
class Connection
|
|
3
|
-
|
|
4
|
-
end
|
|
3
|
+
@pool: ConnectionPool[PgConnection]?
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
attr_accessor uri: String
|
|
6
|
+
attr_accessor pool_size: Integer
|
|
7
|
+
attr_accessor pool_timeout: Integer
|
|
7
8
|
|
|
8
|
-
# _@param_ `uri` — PostgreSQL connection URI. Example: "postgresql://postgres:postgres@localhost:5432/eventstore"
|
|
9
|
-
#
|
|
10
|
-
# _@param_ `pool_size` — Connection pool size
|
|
11
|
-
#
|
|
12
|
-
# _@param_ `pool_timeout` — Connection pool timeout in seconds
|
|
13
9
|
def initialize: (uri: String, ?pool_size: Integer, ?pool_timeout: Integer) -> void
|
|
14
10
|
|
|
15
|
-
def
|
|
11
|
+
def discard_current_connection: -> void
|
|
16
12
|
|
|
17
|
-
def
|
|
13
|
+
def establish_connection: -> void
|
|
18
14
|
|
|
19
|
-
def
|
|
15
|
+
def shutdown: -> void
|
|
20
16
|
|
|
21
|
-
def
|
|
17
|
+
def with: () { (PgConnection connection) -> untyped } -> untyped
|
|
22
18
|
|
|
23
|
-
|
|
24
|
-
attr_accessor uri: String
|
|
19
|
+
private
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
attr_accessor pool_size: Integer
|
|
21
|
+
def init_pool: () -> ConnectionPool[PgConnection]
|
|
28
22
|
|
|
29
|
-
|
|
30
|
-
attr_accessor pool_timeout: Integer
|
|
23
|
+
def pg_type_registry: () -> PG::BasicTypeRegistry
|
|
31
24
|
end
|
|
32
25
|
end
|