pg_eventstore 2.0.0 → 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 +10 -1
- data/CHANGELOG.md +186 -20
- data/README.md +25 -15
- data/db/migrations/10_setup_pg_cron.rb +1 -23
- 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/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 +17 -8
- 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/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/client.rb +163 -50
- 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 +9 -7
- data/lib/pg_eventstore/commands/event_modifiers/prepare_regular_event.rb +12 -7
- data/lib/pg_eventstore/commands/link_to.rb +5 -5
- 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 +21 -2
- data/lib/pg_eventstore/errors.rb +136 -10
- data/lib/pg_eventstore/event.rb +34 -2
- 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 +2 -2
- 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 +7 -93
- 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 +4 -4
- data/lib/pg_eventstore/queries/maintenance_queries.rb +159 -42
- data/lib/pg_eventstore/queries/partition_queries.rb +45 -103
- 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 +52 -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 +13 -16
- data/lib/pg_eventstore/stream_global_index.rb +28 -0
- 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 +12 -0
- data/lib/pg_eventstore/subscriptions/callback_handlers/subscription_runner_handlers.rb +21 -7
- data/lib/pg_eventstore/subscriptions/events_processor.rb +20 -18
- 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_queries.rb +78 -54
- 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 +2 -1
- 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 +24 -0
- data/lib/pg_eventstore/subscriptions/subscription_handler_performance.rb +4 -2
- data/lib/pg_eventstore/subscriptions/subscription_runner.rb +20 -9
- data/lib/pg_eventstore/subscriptions/subscription_runner_commands/reset_position.rb +1 -1
- data/lib/pg_eventstore/subscriptions/subscription_runners_feeder.rb +9 -18
- data/lib/pg_eventstore/subscriptions/subscriptions_lifecycle.rb +0 -12
- data/lib/pg_eventstore/subscriptions/subscriptions_manager.rb +74 -14
- data/lib/pg_eventstore/{subscriptions/synchronized_array.rb → synchronized_array.rb} +15 -0
- data/lib/pg_eventstore/tasks/setup.rake +2 -2
- data/lib/pg_eventstore/utils.rb +31 -0
- data/lib/pg_eventstore/version.rb +1 -1
- data/lib/pg_eventstore/web/application.rb +100 -16
- 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 +16 -9
- 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/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 +23 -60
- 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 +40 -42
- 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/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 +16 -2
- 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/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 +4 -36
- 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 +5 -9
- 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 +2 -0
- 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 +17 -6
- 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 +7 -39
- 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 -2
- data/sig/pg_eventstore/subscriptions/subscription_runners_feeder.rbs +1 -8
- 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 +10 -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 +175 -20
- data/Dockerfile +0 -3
- 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/subscription_service_queries.rb +0 -78
- 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/subscription_service_queries.rbs +0 -19
- data/sig/pg_eventstore/subscriptions/synchronized_array.rbs +0 -4
- /data/sig/interfaces/{_raw_event_handler.rbs → raw_event_handler.rbs} +0 -0
|
@@ -3,46 +3,36 @@ module PgEventstore
|
|
|
3
3
|
extend Forwardable
|
|
4
4
|
|
|
5
5
|
@set_name: String
|
|
6
|
-
@subscription_feeder:
|
|
7
|
-
@subscriptions_lifecycle:
|
|
8
|
-
@subscriptions_set_lifecycle:
|
|
9
|
-
|
|
10
|
-
def self.callbacks: () ->
|
|
11
|
-
|
|
12
|
-
# _@param_ `config`
|
|
13
|
-
#
|
|
14
|
-
# _@param_ `set_name`
|
|
15
|
-
#
|
|
16
|
-
# _@param_ `max_retries` — max number of retries of failed SubscriptionsSet
|
|
17
|
-
#
|
|
18
|
-
# _@param_ `retries_interval` — a delay between retries of failed SubscriptionsSet
|
|
6
|
+
@subscription_feeder: SubscriptionFeeder
|
|
7
|
+
@subscriptions_lifecycle: SubscriptionsLifecycle
|
|
8
|
+
@subscriptions_set_lifecycle: SubscriptionsSetLifecycle
|
|
9
|
+
|
|
10
|
+
def self.callbacks: () -> Callbacks
|
|
11
|
+
|
|
19
12
|
def initialize: (
|
|
20
|
-
config:
|
|
13
|
+
config: Config,
|
|
21
14
|
set_name: String,
|
|
22
15
|
?max_retries: Integer?,
|
|
23
16
|
?retries_interval: Integer?,
|
|
24
17
|
?force_lock: bool
|
|
25
18
|
) -> void
|
|
26
19
|
|
|
20
|
+
def create_replication: (
|
|
21
|
+
String subscription_name,
|
|
22
|
+
Symbol primary_config_name,
|
|
23
|
+
?options: ::Hash[untyped, untyped],
|
|
24
|
+
?max_events_to_replicate: Integer,
|
|
25
|
+
?pull_interval: Integer | Float,
|
|
26
|
+
?max_retries: Integer,
|
|
27
|
+
?retries_interval: Integer | Float,
|
|
28
|
+
?restart_terminator: _RestartTerminator?,
|
|
29
|
+
?failed_subscription_notifier: _FailedSubscriptionNotifier?,
|
|
30
|
+
?graceful_shutdown_timeout: Integer | Float,
|
|
31
|
+
?in_batches: bool,
|
|
32
|
+
) -> void
|
|
33
|
+
|
|
27
34
|
def config_name: () -> Symbol
|
|
28
35
|
|
|
29
|
-
# _@param_ `subscription_name` — subscription's name
|
|
30
|
-
#
|
|
31
|
-
# _@param_ `handler` — subscription's handler
|
|
32
|
-
#
|
|
33
|
-
# _@param_ `options` — request options
|
|
34
|
-
#
|
|
35
|
-
# _@param_ `middlewares` — provide a list of middleware names to override a config's middlewares
|
|
36
|
-
#
|
|
37
|
-
# _@param_ `pull_interval` — an interval in seconds to determine how often to query new events of the given subscription.
|
|
38
|
-
#
|
|
39
|
-
# _@param_ `max_retries` — max number of retries of failed Subscription
|
|
40
|
-
#
|
|
41
|
-
# _@param_ `retries_interval` — a delay between retries of failed Subscription
|
|
42
|
-
#
|
|
43
|
-
# _@param_ `restart_terminator` — a callable object which is invoked with PgEventstore::Subscription instance to determine whether restarts should be stopped(true - stops restarts, false - continues restarts)
|
|
44
|
-
#
|
|
45
|
-
# _@param_ `failed_subscription_notifier` - a callable object which is invoked with PgEventstore::Subscription instance and error instance after the related subscription died due to error and no longer can be automatically restarted due to max retries number reached. You can use this hook to send a notification about failed subscription.
|
|
46
36
|
def subscribe: (
|
|
47
37
|
String subscription_name,
|
|
48
38
|
handler: _SubscriptionHandler,
|
|
@@ -54,26 +44,22 @@ module PgEventstore
|
|
|
54
44
|
?restart_terminator: _RestartTerminator?,
|
|
55
45
|
?failed_subscription_notifier: _FailedSubscriptionNotifier?,
|
|
56
46
|
?graceful_shutdown_timeout: Integer | Float,
|
|
47
|
+
?in_batches: bool,
|
|
57
48
|
) -> void
|
|
58
49
|
|
|
59
|
-
def subscriptions: () -> ::Array[
|
|
50
|
+
def subscriptions: () -> ::Array[Subscription]
|
|
60
51
|
|
|
61
|
-
def subscriptions_set: () ->
|
|
52
|
+
def subscriptions_set: () -> SubscriptionsSet?
|
|
62
53
|
|
|
63
|
-
|
|
64
|
-
#
|
|
65
|
-
# _@param_ `handler`
|
|
66
|
-
def create_raw_event_handler: (::Array[Symbol]? middlewares, _SubscriptionHandler handler) -> _RawEventHandler
|
|
54
|
+
def deserializer: (::Array[Symbol]? middlewares) -> EventDeserializer
|
|
67
55
|
|
|
68
|
-
|
|
69
|
-
def select_middlewares: (?::Array[Symbol]? middlewares) -> ::Array[PgEventstore::Middleware]
|
|
56
|
+
def select_middlewares: (?::Array[Symbol]? middlewares) -> ::Array[Middleware]
|
|
70
57
|
|
|
71
|
-
def start!: () ->
|
|
58
|
+
def start!: () -> BasicRunner
|
|
72
59
|
|
|
73
|
-
def start: () ->
|
|
60
|
+
def start: () -> BasicRunner?
|
|
74
61
|
|
|
75
|
-
|
|
76
|
-
attr_accessor config: PgEventstore::Config
|
|
62
|
+
attr_accessor config: Config
|
|
77
63
|
|
|
78
64
|
private
|
|
79
65
|
|
data/sig/pg_eventstore/utils.rbs
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
class Utils
|
|
3
|
+
def self.assert!: (boolish truthy, String? message) -> void
|
|
4
|
+
|
|
5
|
+
def self.assert_node_role!: (Config config, Array[Symbol] expected_roles) -> void
|
|
6
|
+
|
|
3
7
|
def self.benchmark: { -> untyped } -> Float
|
|
4
8
|
|
|
5
|
-
|
|
6
|
-
def self.deep_transform_keys: (untyped object) { (untyped key) -> untyped } -> Object
|
|
9
|
+
def self.deep_transform_keys: (untyped object) { (untyped key) -> untyped } -> untyped
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
def self.deep_dup: (untyped object) -> Object
|
|
11
|
+
def self.deep_dup: (untyped object) -> untyped
|
|
10
12
|
|
|
11
13
|
def self.deprecation_warning: (String message) -> void
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# _@return_ — positional variables, based on array size. Example: "$1, $2, $3"
|
|
15
|
+
def self.missing_implementation!: (untyped obj) -> void
|
|
16
|
+
|
|
16
17
|
def self.positional_vars: (::Array[untyped] array) -> String
|
|
17
18
|
|
|
18
|
-
# _@param_ `error`
|
|
19
19
|
def self.error_info: (StandardError error) -> ::Hash[untyped, untyped]
|
|
20
20
|
|
|
21
21
|
def self.read_pid: (String file_path) -> String?
|
|
22
22
|
|
|
23
23
|
def self.remove_file: (String file_path) -> void
|
|
24
24
|
|
|
25
|
-
# _@param_ `str`
|
|
26
25
|
def self.underscore_str: (String str) -> String
|
|
27
26
|
|
|
28
27
|
def self.original_global_position: (Hash[untyped, untyped] raw_event) -> Integer
|
|
29
28
|
|
|
30
|
-
def self.unwrap_exception: (WrappedException | StandardError wrapped_exception)-> StandardError
|
|
29
|
+
def self.unwrap_exception: (WrappedException | StandardError wrapped_exception) -> StandardError
|
|
31
30
|
|
|
32
|
-
def self.wrap_exception: (StandardError exception, **untyped extra)-> WrappedException
|
|
31
|
+
def self.wrap_exception: (StandardError exception, **untyped extra) -> WrappedException
|
|
33
32
|
|
|
34
33
|
def self.write_to_file: (String file_path, String content) -> void
|
|
35
34
|
end
|
|
@@ -11,7 +11,7 @@ module PgEventstore
|
|
|
11
11
|
|
|
12
12
|
def asset_url: (String path) -> String
|
|
13
13
|
|
|
14
|
-
def connection: ->
|
|
14
|
+
def connection: -> Connection
|
|
15
15
|
|
|
16
16
|
def current_config: -> Symbol
|
|
17
17
|
|
|
@@ -19,13 +19,15 @@ module PgEventstore
|
|
|
19
19
|
|
|
20
20
|
def escape_empty_string: (String? string) -> String?
|
|
21
21
|
|
|
22
|
-
def events_filter: -> Array[String]
|
|
22
|
+
def events_filter: -> Array[String | Hash[untyped, untyped]]
|
|
23
23
|
|
|
24
24
|
def flash_message=: (({ message: String, kind: String }) val)-> String
|
|
25
25
|
|
|
26
26
|
def h: (String text) -> String
|
|
27
27
|
|
|
28
|
-
def
|
|
28
|
+
def markers_filter: -> Array[String]
|
|
29
|
+
|
|
30
|
+
def paginated_json_response: (Paginator::BaseCollection collection) -> void
|
|
29
31
|
|
|
30
32
|
def redirect_back_url: (fallback_url: String) -> String
|
|
31
33
|
|
|
@@ -38,6 +40,14 @@ module PgEventstore
|
|
|
38
40
|
def system_stream: -> String?
|
|
39
41
|
|
|
40
42
|
def unescape_empty_string: (String? string) -> String?
|
|
43
|
+
|
|
44
|
+
def extract_event_types_filter: (Hash[untyped, untyped] options) -> Array[String | Hash[untyped, untyped]]
|
|
45
|
+
|
|
46
|
+
def extract_streams_filter: (Hash[untyped, untyped] options) -> Array[Hash[untyped, untyped]]
|
|
47
|
+
|
|
48
|
+
private
|
|
49
|
+
|
|
50
|
+
def normalize_markers: (Hash[untyped, untyped] hash) -> Array[String]
|
|
41
51
|
end
|
|
42
52
|
end
|
|
43
53
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
2
|
module Web
|
|
3
3
|
module Paginator
|
|
4
|
-
class EventsCollection <
|
|
4
|
+
class EventsCollection < BaseCollection
|
|
5
5
|
SQL_DIRECTIONS: ::Hash[String, Symbol]
|
|
6
6
|
PER_PAGE: ::Hash[String, Integer]
|
|
7
7
|
MAX_NUMBER_TO_COUNT: Integer
|
|
8
8
|
|
|
9
|
-
@
|
|
9
|
+
@_collection: Array[Event]
|
|
10
10
|
|
|
11
|
-
def collection: () -> ::Array[
|
|
11
|
+
def collection: () -> ::Array[Event]
|
|
12
12
|
|
|
13
13
|
def next_page_starting_id: () -> Integer?
|
|
14
14
|
|
|
@@ -16,17 +16,17 @@ module PgEventstore
|
|
|
16
16
|
|
|
17
17
|
def total_count: () -> Integer
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
def event_global_position: (PgEventstore::Event? event) -> Integer?
|
|
19
|
+
def event_global_position: (Event? event) -> Integer?
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
def estimate_count: (PgEventstore::SQLBuilder sql_builder) -> Integer
|
|
21
|
+
def estimate_count: (SQLBuilder sql_builder) -> Integer
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
def regular_count: (PgEventstore::SQLBuilder sql_builder) -> Integer
|
|
23
|
+
def regular_count: (SQLBuilder sql_builder) -> Integer
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
def global_position: (SQLBuilder sql_builder) -> Integer?
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def _collection: -> Array[Event]
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
end
|
|
@@ -4,36 +4,27 @@ module PgEventstore
|
|
|
4
4
|
module Helpers
|
|
5
5
|
def empty_characters_fallback: (String str)-> String
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
def previous_page_link: (PgEventstore::Web::Paginator::BaseCollection collection) -> String
|
|
7
|
+
def event_marker_path: (String marker) -> String
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
def previous_page_link: (BaseCollection collection) -> String
|
|
10
|
+
|
|
11
|
+
def next_page_link: (BaseCollection collection) -> String
|
|
12
12
|
|
|
13
13
|
def first_page_link: () -> String
|
|
14
14
|
|
|
15
|
-
# _@param_ `per_page` — string representation of items per page. E.g. "10", "20", etc.
|
|
16
15
|
def per_page_url: (String per_page) -> String
|
|
17
16
|
|
|
18
|
-
# _@param_ `order` — "asc"/"desc"
|
|
19
17
|
def sort_url: (String order) -> String
|
|
20
18
|
|
|
21
|
-
# _@param_ `number` — total number of events by the current filter
|
|
22
19
|
def total_count: (Integer number) -> String
|
|
23
20
|
|
|
24
|
-
# _@param_ `number`
|
|
25
|
-
#
|
|
26
|
-
# _@param_ `delimiter`
|
|
27
21
|
def number_with_delimiter: (Integer number, ?delimiter: String) -> String
|
|
28
22
|
|
|
29
|
-
|
|
30
|
-
def stream_path: (PgEventstore::Event event) -> String
|
|
23
|
+
def stream_path: (Stream stream) -> String
|
|
31
24
|
|
|
32
|
-
# _@param_ `starting_id`
|
|
33
25
|
def build_starting_id_link: ((String | Integer)? starting_id) -> String
|
|
34
26
|
|
|
35
|
-
|
|
36
|
-
def build_path: ((::Hash[untyped, untyped] | ::Array[untyped]) params) -> String
|
|
27
|
+
def build_path: ((::Hash[untyped, untyped] | ::Array[untyped]) params, ?base_url: String) -> String
|
|
37
28
|
end
|
|
38
29
|
end
|
|
39
30
|
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module PgEventstore
|
|
2
|
+
module Web
|
|
3
|
+
module Paginator
|
|
4
|
+
class StreamsCollection < BaseCollection
|
|
5
|
+
SQL_DIRECTIONS: ::Hash[String, Symbol]
|
|
6
|
+
PER_PAGE: ::Hash[String, Integer]
|
|
7
|
+
MAX_NUMBER_TO_COUNT: Integer
|
|
8
|
+
|
|
9
|
+
@collection: Array[Stream]
|
|
10
|
+
@total_count: Integer
|
|
11
|
+
|
|
12
|
+
def collection: -> Array[Stream]
|
|
13
|
+
|
|
14
|
+
def next_page_starting_id: -> Integer?
|
|
15
|
+
|
|
16
|
+
def prev_page_starting_id: -> Integer?
|
|
17
|
+
|
|
18
|
+
def total_count: -> Integer
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def estimate_count: (SQLBuilder sql_builder) -> Integer
|
|
23
|
+
|
|
24
|
+
def regular_count: (SQLBuilder sql_builder) -> Integer
|
|
25
|
+
|
|
26
|
+
def starting_position: (SQLBuilder sql_builder) -> Integer?
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
data/sig/pg_eventstore.rbs
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
module PgEventstore
|
|
2
|
-
|
|
2
|
+
extend Extensions::ActsAsConfigurable
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
#
|
|
6
|
-
# _@return_ — a result of the given block
|
|
7
|
-
def self.configure: (?name: Symbol) { (PgEventstore::Config) -> untyped } -> Object
|
|
4
|
+
attr_accessor logger: untyped
|
|
8
5
|
|
|
9
|
-
def self.
|
|
10
|
-
|
|
11
|
-
# _@param_ `name`
|
|
12
|
-
def self.config: (?Symbol name) -> PgEventstore::Config
|
|
13
|
-
|
|
14
|
-
# _@param_ `name`
|
|
15
|
-
def self.connection: (?Symbol name) -> PgEventstore::Connection
|
|
16
|
-
|
|
17
|
-
def self.maintenance: (?Symbol name) -> PgEventstore::Maintenance
|
|
6
|
+
def self.maintenance: (?Symbol name) -> Maintenance
|
|
18
7
|
|
|
19
8
|
def self.subscriptions_manager: (
|
|
20
9
|
?Symbol config_name,
|
|
@@ -22,19 +11,12 @@ module PgEventstore
|
|
|
22
11
|
?max_retries: Integer?,
|
|
23
12
|
?retries_interval: Integer?,
|
|
24
13
|
?force_lock: bool
|
|
25
|
-
) ->
|
|
26
|
-
|
|
27
|
-
# _@param_ `name`
|
|
28
|
-
def self.client: (?Symbol name) -> PgEventstore::Client
|
|
29
|
-
|
|
30
|
-
def self.logger: () -> Logger?
|
|
31
|
-
|
|
32
|
-
# _@param_ `logger`
|
|
33
|
-
def self.logger=: (Logger? logger) -> Logger?
|
|
14
|
+
) -> SubscriptionsManager
|
|
34
15
|
|
|
35
|
-
def self.
|
|
16
|
+
def self.client: (?Symbol name) -> Client
|
|
36
17
|
|
|
37
|
-
|
|
18
|
+
private
|
|
38
19
|
|
|
39
|
-
def self.
|
|
20
|
+
def self.connection_options: (Config config) ->
|
|
21
|
+
{ uri: String, pool_size: Integer, pool_timeout: Integer }
|
|
40
22
|
end
|