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.
Files changed (303) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +10 -1
  3. data/CHANGELOG.md +186 -20
  4. data/README.md +25 -15
  5. data/db/migrations/10_setup_pg_cron.rb +1 -23
  6. data/db/migrations/15_create_streams_global_index.sql +17 -0
  7. data/db/migrations/16_populate_streams_global_index.rb +150 -0
  8. data/db/migrations/17_create_events_global_index.sql +62 -0
  9. data/db/migrations/18_populate_events_global_index.rb +124 -0
  10. data/db/migrations/19_populate_events_global_index_p2.rb +25 -0
  11. data/db/migrations/20_migrate_subscriptions_current_position.sql +19 -0
  12. data/db/migrations/21_create_partitions_stats.sql +2 -0
  13. data/db/migrations/22_drop_streams_sql_view.sql +2 -0
  14. data/db/migrations/23_adjust_partitions_indexes.sql +5 -0
  15. data/db/migrations/24_drop_legacy_events_indexes.sql +3 -0
  16. data/db/migrations/25_add_parent_partitions_info_to_partitions.sql +16 -0
  17. data/db/migrations/26_change_events_stream_revision_type.rb +35 -0
  18. data/db/migrations/27_drop_events_horizon.sql +3 -0
  19. data/db/migrations/28_create_maintenance_tasks.sql +8 -0
  20. data/db/migrations/29_create_event_markers.sql +35 -0
  21. data/db/migrations/30_improve_partitions_search_in_admin_ui.rb +24 -0
  22. data/db/migrations/31_drop_events_id_default_value.sql +1 -0
  23. data/db/migrations/32_create_parittions_triggers.sql +101 -0
  24. data/docs/AGENTS.fragment.md +696 -0
  25. data/docs/admin_ui.md +3 -1
  26. data/docs/appending_events.md +110 -49
  27. data/docs/configuration.md +69 -36
  28. data/docs/event_tracing.md +55 -0
  29. data/docs/events_and_streams.md +54 -30
  30. data/docs/how_it_works.md +57 -16
  31. data/docs/linking_events.md +2 -1
  32. data/docs/maintenance.md +14 -5
  33. data/docs/multiple_commands.md +17 -8
  34. data/docs/reading_events.md +208 -43
  35. data/docs/reading_streams.md +50 -0
  36. data/docs/replication.md +99 -0
  37. data/docs/subscriptions.md +165 -35
  38. data/docs/writing_middleware.md +25 -8
  39. data/ext/pg_eventstore_ext/extconf.rb +5 -0
  40. data/ext/pg_eventstore_ext/pg_eventstore_ext.c +74 -0
  41. data/lib/pg_eventstore/async_runner.rb +63 -0
  42. data/lib/pg_eventstore/basic_config.rb +15 -0
  43. data/lib/pg_eventstore/chunks/chunk.rb +31 -0
  44. data/lib/pg_eventstore/chunks/read_api_events_index_chunk.rb +83 -0
  45. data/lib/pg_eventstore/chunks/replica_events_index_chunk.rb +35 -0
  46. data/lib/pg_eventstore/chunks/repository.rb +73 -0
  47. data/lib/pg_eventstore/chunks/subscription_checkpoint_chunk.rb +48 -0
  48. data/lib/pg_eventstore/chunks/subscription_events_index_chunk.rb +99 -0
  49. data/lib/pg_eventstore/chunks.rb +14 -0
  50. data/lib/pg_eventstore/client.rb +163 -50
  51. data/lib/pg_eventstore/commands/append.rb +62 -43
  52. data/lib/pg_eventstore/commands/delete_event.rb +7 -8
  53. data/lib/pg_eventstore/commands/delete_stream.rb +3 -3
  54. data/lib/pg_eventstore/commands/event_modifiers/prepare_link_event.rb +9 -7
  55. data/lib/pg_eventstore/commands/event_modifiers/prepare_regular_event.rb +12 -7
  56. data/lib/pg_eventstore/commands/link_to.rb +5 -5
  57. data/lib/pg_eventstore/commands/read.rb +23 -5
  58. data/lib/pg_eventstore/commands/read_grouped.rb +46 -0
  59. data/lib/pg_eventstore/commands/read_streams.rb +18 -0
  60. data/lib/pg_eventstore/commands/read_streams_paginated.rb +56 -0
  61. data/lib/pg_eventstore/commands/regular_stream_read_paginated.rb +4 -4
  62. data/lib/pg_eventstore/commands/revision_check/current_revision.rb +51 -0
  63. data/lib/pg_eventstore/commands/revision_check/event_type_revisions_comparison.rb +46 -0
  64. data/lib/pg_eventstore/commands/revision_check/expected_revision.rb +135 -0
  65. data/lib/pg_eventstore/commands/revision_check/stream_revision_check.rb +98 -0
  66. data/lib/pg_eventstore/commands/revision_check/stream_revision_comparison.rb +36 -0
  67. data/lib/pg_eventstore/commands/stream_revision.rb +14 -0
  68. data/lib/pg_eventstore/commands/system_stream_read_paginated.rb +4 -4
  69. data/lib/pg_eventstore/commands.rb +4 -2
  70. data/lib/pg_eventstore/config.rb +30 -9
  71. data/lib/pg_eventstore/connection.rb +21 -2
  72. data/lib/pg_eventstore/errors.rb +136 -10
  73. data/lib/pg_eventstore/event.rb +34 -2
  74. data/lib/pg_eventstore/event_deserializer.rb +5 -4
  75. data/lib/pg_eventstore/event_global_index.rb +118 -0
  76. data/lib/pg_eventstore/event_marker.rb +16 -0
  77. data/lib/pg_eventstore/event_marker_index.rb +25 -0
  78. data/lib/pg_eventstore/event_serializer.rb +6 -0
  79. data/lib/pg_eventstore/extensions/acts_as_configurable.rb +88 -0
  80. data/lib/pg_eventstore/extensions/options_defaults.rb +25 -0
  81. data/lib/pg_eventstore/extensions/options_extension.rb +2 -2
  82. data/lib/pg_eventstore/feature_marker.rb +18 -0
  83. data/lib/pg_eventstore/maintenance.rb +11 -6
  84. data/lib/pg_eventstore/middleware/event_tracing.rb +53 -0
  85. data/lib/pg_eventstore/partition.rb +6 -0
  86. data/lib/pg_eventstore/pg_connection.rb +70 -14
  87. data/lib/pg_eventstore/queries/event_marker_queries.rb +74 -0
  88. data/lib/pg_eventstore/queries/event_queries.rb +7 -93
  89. data/lib/pg_eventstore/queries/events_global_index_queries.rb +131 -0
  90. data/lib/pg_eventstore/queries/index_filtering_queries.rb +179 -0
  91. data/lib/pg_eventstore/queries/links_resolver.rb +4 -4
  92. data/lib/pg_eventstore/queries/maintenance_queries.rb +159 -42
  93. data/lib/pg_eventstore/queries/partition_queries.rb +45 -103
  94. data/lib/pg_eventstore/queries/replica_queries.rb +110 -0
  95. data/lib/pg_eventstore/queries/streams_global_index_queries.rb +163 -0
  96. data/lib/pg_eventstore/queries/transaction_queries.rb +52 -10
  97. data/lib/pg_eventstore/queries.rb +29 -1
  98. data/lib/pg_eventstore/query_builders/basic_filtering.rb +38 -5
  99. data/lib/pg_eventstore/query_builders/event_markers_filtering.rb +47 -0
  100. data/lib/pg_eventstore/query_builders/event_markers_index_filtering.rb +275 -0
  101. data/lib/pg_eventstore/query_builders/event_subscription_positions_filtering.rb +37 -0
  102. data/lib/pg_eventstore/query_builders/events_filtering.rb +15 -164
  103. data/lib/pg_eventstore/query_builders/events_global_index_filtering.rb +227 -0
  104. data/lib/pg_eventstore/query_builders/filters/collection.rb +324 -0
  105. data/lib/pg_eventstore/query_builders/filters/event_type_filter.rb +37 -0
  106. data/lib/pg_eventstore/query_builders/filters/filter_row.rb +54 -0
  107. data/lib/pg_eventstore/query_builders/filters/marker_filter.rb +20 -0
  108. data/lib/pg_eventstore/query_builders/filters/marker_filter_row.rb +49 -0
  109. data/lib/pg_eventstore/query_builders/filters/stream_filter.rb +48 -0
  110. data/lib/pg_eventstore/query_builders/index_based_events_filtering.rb +260 -0
  111. data/lib/pg_eventstore/query_builders/partitions_filtering.rb +175 -51
  112. data/lib/pg_eventstore/query_builders/read_cursor/stream_cursor.rb +122 -0
  113. data/lib/pg_eventstore/query_builders/streams_global_index_filtering.rb +83 -0
  114. data/lib/pg_eventstore/query_builders/subscription_events_filtering.rb +79 -0
  115. data/lib/pg_eventstore/query_strategy/async.rb +64 -0
  116. data/lib/pg_eventstore/query_strategy/foreground.rb +25 -0
  117. data/lib/pg_eventstore/query_strategy.rb +19 -0
  118. data/lib/pg_eventstore/raw_event.rb +46 -0
  119. data/lib/pg_eventstore/rspec/test_helpers.rb +21 -8
  120. data/lib/pg_eventstore/sql_builder.rb +87 -8
  121. data/lib/pg_eventstore/stream.rb +13 -16
  122. data/lib/pg_eventstore/stream_global_index.rb +28 -0
  123. data/lib/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rb +5 -17
  124. data/lib/pg_eventstore/subscriptions/callback_handlers/events_subscription_position_worker_handlers.rb +36 -0
  125. data/lib/pg_eventstore/subscriptions/callback_handlers/subscription_feeder_handlers.rb +12 -0
  126. data/lib/pg_eventstore/subscriptions/callback_handlers/subscription_runner_handlers.rb +21 -7
  127. data/lib/pg_eventstore/subscriptions/events_processor.rb +20 -18
  128. data/lib/pg_eventstore/subscriptions/events_processor_consumer/multiple.rb +63 -0
  129. data/lib/pg_eventstore/subscriptions/events_processor_consumer/replica.rb +68 -0
  130. data/lib/pg_eventstore/subscriptions/events_processor_consumer/single.rb +62 -0
  131. data/lib/pg_eventstore/subscriptions/events_processor_consumer.rb +44 -0
  132. data/lib/pg_eventstore/subscriptions/events_subscription_position_worker.rb +68 -0
  133. data/lib/pg_eventstore/subscriptions/queries/event_subscription_position_queries.rb +177 -0
  134. data/lib/pg_eventstore/subscriptions/queries/subscription_queries.rb +78 -54
  135. data/lib/pg_eventstore/subscriptions/replica_subscription_handler.rb +140 -0
  136. data/lib/pg_eventstore/subscriptions/replica_subscription_runner.rb +9 -0
  137. data/lib/pg_eventstore/subscriptions/subscription.rb +2 -1
  138. data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/collection.rb +36 -0
  139. data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/index_read_strategy.rb +82 -0
  140. data/lib/pg_eventstore/subscriptions/subscription_feed_strategies/replication_strategy.rb +75 -0
  141. data/lib/pg_eventstore/subscriptions/subscription_feed_strategy.rb +31 -0
  142. data/lib/pg_eventstore/subscriptions/subscription_feeder.rb +24 -0
  143. data/lib/pg_eventstore/subscriptions/subscription_handler_performance.rb +4 -2
  144. data/lib/pg_eventstore/subscriptions/subscription_runner.rb +20 -9
  145. data/lib/pg_eventstore/subscriptions/subscription_runner_commands/reset_position.rb +1 -1
  146. data/lib/pg_eventstore/subscriptions/subscription_runners_feeder.rb +9 -18
  147. data/lib/pg_eventstore/subscriptions/subscriptions_lifecycle.rb +0 -12
  148. data/lib/pg_eventstore/subscriptions/subscriptions_manager.rb +74 -14
  149. data/lib/pg_eventstore/{subscriptions/synchronized_array.rb → synchronized_array.rb} +15 -0
  150. data/lib/pg_eventstore/tasks/setup.rake +2 -2
  151. data/lib/pg_eventstore/utils.rb +31 -0
  152. data/lib/pg_eventstore/version.rb +1 -1
  153. data/lib/pg_eventstore/web/application.rb +100 -16
  154. data/lib/pg_eventstore/web/paginator/base_collection.rb +5 -1
  155. data/lib/pg_eventstore/web/paginator/event_types_collection.rb +14 -4
  156. data/lib/pg_eventstore/web/paginator/events_collection.rb +29 -33
  157. data/lib/pg_eventstore/web/paginator/helpers.rb +16 -9
  158. data/lib/pg_eventstore/web/paginator/markers_collection.rb +48 -0
  159. data/lib/pg_eventstore/web/paginator/stream_contexts_collection.rb +13 -2
  160. data/lib/pg_eventstore/web/paginator/stream_ids_collection.rb +21 -11
  161. data/lib/pg_eventstore/web/paginator/stream_names_collection.rb +18 -4
  162. data/lib/pg_eventstore/web/paginator/streams_collection.rb +95 -0
  163. data/lib/pg_eventstore/web/public/javascripts/pg_eventstore.js +49 -22
  164. data/lib/pg_eventstore/web/subscriptions/set_collection.rb +1 -1
  165. data/lib/pg_eventstore/web/subscriptions/subscriptions.rb +1 -1
  166. data/lib/pg_eventstore/web/subscriptions/with_state/set_collection.rb +1 -1
  167. data/lib/pg_eventstore/web/subscriptions/with_state/subscriptions.rb +1 -1
  168. data/lib/pg_eventstore/web/views/home/dashboard.erb +11 -9
  169. data/lib/pg_eventstore/web/views/home/partials/event_filter.erb +18 -5
  170. data/lib/pg_eventstore/web/views/home/partials/events.erb +38 -1
  171. data/lib/pg_eventstore/web/views/home/partials/markers_filter.erb +18 -0
  172. data/lib/pg_eventstore/web/views/layouts/application.erb +6 -0
  173. data/lib/pg_eventstore/web/views/streams/index.erb +110 -0
  174. data/lib/pg_eventstore/web/views/streams/partials/streams.erb +11 -0
  175. data/lib/pg_eventstore/web/views/subscriptions/index.erb +4 -1
  176. data/lib/pg_eventstore/web.rb +2 -0
  177. data/lib/pg_eventstore.rb +23 -60
  178. data/pg_eventstore.gemspec +6 -4
  179. data/sig/interfaces/_raw_events_handler.rbs +3 -0
  180. data/sig/interfaces/subscription_handler.rbs +1 -1
  181. data/sig/pg/result.rbs +9 -0
  182. data/sig/pg_eventstore/async_runner.rbs +13 -0
  183. data/sig/pg_eventstore/basic_config.rbs +9 -0
  184. data/sig/pg_eventstore/chunks/chunk.rbs +13 -0
  185. data/sig/pg_eventstore/chunks/read_api_events_index_chunk.rbs +30 -0
  186. data/sig/pg_eventstore/chunks/replica_events_index_chunk.rbs +11 -0
  187. data/sig/pg_eventstore/chunks/repository.rbs +22 -0
  188. data/sig/pg_eventstore/chunks/subscription_checkpoint_chunk.rbs +18 -0
  189. data/sig/pg_eventstore/chunks/subscription_events_index_chunk.rbs +37 -0
  190. data/sig/pg_eventstore/client.rbs +40 -42
  191. data/sig/pg_eventstore/commands/append.rbs +11 -25
  192. data/sig/pg_eventstore/commands/event_modifiers/prepare_link_event.rbs +9 -12
  193. data/sig/pg_eventstore/commands/event_modifiers/prepare_regular_event.rbs +5 -4
  194. data/sig/pg_eventstore/commands/link_to.rbs +6 -11
  195. data/sig/pg_eventstore/commands/read.rbs +2 -5
  196. data/sig/pg_eventstore/commands/read_grouped.rbs +7 -0
  197. data/sig/pg_eventstore/commands/read_streams.rbs +7 -0
  198. data/sig/pg_eventstore/commands/read_streams_paginated.rbs +16 -0
  199. data/sig/pg_eventstore/commands/regular_stream_read_paginated.rbs +9 -17
  200. data/sig/pg_eventstore/commands/revision_check/current_revision.rbs +25 -0
  201. data/sig/pg_eventstore/commands/revision_check/event_type_revisions_comparison.rbs +14 -0
  202. data/sig/pg_eventstore/commands/revision_check/expected_revision.rbs +67 -0
  203. data/sig/pg_eventstore/commands/revision_check/stream_revision_check.rbs +20 -0
  204. data/sig/pg_eventstore/commands/revision_check/stream_revision_comparison.rbs +9 -0
  205. data/sig/pg_eventstore/commands/stream_revision.rbs +7 -0
  206. data/sig/pg_eventstore/commands/system_stream_read_paginated.rbs +9 -14
  207. data/sig/pg_eventstore/config.rbs +15 -6
  208. data/sig/pg_eventstore/connection.rbs +11 -18
  209. data/sig/pg_eventstore/errors.rbs +64 -34
  210. data/sig/pg_eventstore/event.rbs +16 -2
  211. data/sig/pg_eventstore/event_deserializer.rbs +5 -10
  212. data/sig/pg_eventstore/event_global_index.rbs +60 -0
  213. data/sig/pg_eventstore/event_marker.rbs +9 -0
  214. data/sig/pg_eventstore/event_marker_index.rbs +12 -0
  215. data/sig/pg_eventstore/extensions/acts_as_configurable.rbs +29 -0
  216. data/sig/pg_eventstore/extensions/options_defaults.rbs +7 -0
  217. data/sig/pg_eventstore/feature_marker.rbs +10 -0
  218. data/sig/pg_eventstore/maintenance.rbs +12 -8
  219. data/sig/pg_eventstore/middleware/event_trace.rbs +14 -0
  220. data/sig/pg_eventstore/partition.rbs +2 -4
  221. data/sig/pg_eventstore/pg_connection.rbs +8 -0
  222. data/sig/pg_eventstore/queries/event_marker_queries.rbs +21 -0
  223. data/sig/pg_eventstore/queries/event_queries.rbs +4 -36
  224. data/sig/pg_eventstore/queries/events_global_index_queries.rbs +37 -0
  225. data/sig/pg_eventstore/queries/index_filtering_queries.rbs +50 -0
  226. data/sig/pg_eventstore/queries/links_resolver.rbs +5 -9
  227. data/sig/pg_eventstore/queries/maintenance_queries.rbs +12 -9
  228. data/sig/pg_eventstore/queries/partition_queries.rbs +32 -67
  229. data/sig/pg_eventstore/queries/replica_queries.rbs +31 -0
  230. data/sig/pg_eventstore/queries/streams_global_index_queries.rbs +39 -0
  231. data/sig/pg_eventstore/queries/transaction_queries.rbs +2 -0
  232. data/sig/pg_eventstore/queries.rbs +11 -21
  233. data/sig/pg_eventstore/query_builders/basic_filtering.rbs +10 -3
  234. data/sig/pg_eventstore/query_builders/event_markers_filtering.rbs +17 -0
  235. data/sig/pg_eventstore/query_builders/event_markers_index_filtering.rbs +69 -0
  236. data/sig/pg_eventstore/query_builders/event_subscription_positions_filtering.rbs +15 -0
  237. data/sig/pg_eventstore/query_builders/events_filtering_query.rbs +9 -51
  238. data/sig/pg_eventstore/query_builders/events_global_index_filtering.rbs +68 -0
  239. data/sig/pg_eventstore/query_builders/filters/collection.rbs +84 -0
  240. data/sig/pg_eventstore/query_builders/filters/event_type_filter.rbs +19 -0
  241. data/sig/pg_eventstore/query_builders/filters/filter_row.rbs +21 -0
  242. data/sig/pg_eventstore/query_builders/filters/marker_filter.rbs +13 -0
  243. data/sig/pg_eventstore/query_builders/filters/marker_filter_row.rbs +19 -0
  244. data/sig/pg_eventstore/query_builders/filters/stream_filter.rbs +24 -0
  245. data/sig/pg_eventstore/query_builders/index_based_events_filtering.rbs +60 -0
  246. data/sig/pg_eventstore/query_builders/partitions_filtering.rbs +29 -10
  247. data/sig/pg_eventstore/query_builders/read_cursor/stream_cursor.rbs +47 -0
  248. data/sig/pg_eventstore/query_builders/streams_global_index_filtering.rbs +27 -0
  249. data/sig/pg_eventstore/query_builders/subscription_events_filtering.rbs +26 -0
  250. data/sig/pg_eventstore/query_strategy/async.rbs +17 -0
  251. data/sig/pg_eventstore/query_strategy/foreground.rbs +11 -0
  252. data/sig/pg_eventstore/query_strategy.rbs +7 -0
  253. data/sig/pg_eventstore/raw_event.rbs +20 -0
  254. data/sig/pg_eventstore/sql_builder.rbs +32 -10
  255. data/sig/pg_eventstore/stream.rbs +10 -18
  256. data/sig/pg_eventstore/stream_global_index.rbs +14 -0
  257. data/sig/pg_eventstore/subscriptions/callback_handlers/events_processor_handlers.rbs +5 -4
  258. data/sig/pg_eventstore/subscriptions/callback_handlers/events_subscription_position_worker_handlers.rbs +9 -0
  259. data/sig/pg_eventstore/subscriptions/callback_handlers/subscription_feeder_handlers.rbs +17 -12
  260. data/sig/pg_eventstore/subscriptions/callback_handlers/subscription_runner_handlers.rbs +17 -6
  261. data/sig/pg_eventstore/subscriptions/event_subscription_position_queries.rbs +30 -0
  262. data/sig/pg_eventstore/subscriptions/events_processor.rbs +12 -5
  263. data/sig/pg_eventstore/subscriptions/events_processor_consumer/multiple.rbs +17 -0
  264. data/sig/pg_eventstore/subscriptions/events_processor_consumer/replica.rbs +17 -0
  265. data/sig/pg_eventstore/subscriptions/events_processor_consumer/single.rbs +17 -0
  266. data/sig/pg_eventstore/subscriptions/events_processor_consumer.rbs +14 -0
  267. data/sig/pg_eventstore/subscriptions/events_subscription_position_worker.rbs +28 -0
  268. data/sig/pg_eventstore/subscriptions/queries/subscription_queries.rbs +7 -39
  269. data/sig/pg_eventstore/subscriptions/replica_subscription_handler.rbs +33 -0
  270. data/sig/pg_eventstore/subscriptions/replica_subscription_runner.rbs +4 -0
  271. data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/collection.rbs +14 -0
  272. data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/index_read_strategy.rbs +23 -0
  273. data/sig/pg_eventstore/subscriptions/subscription_feed_strategy/replication_strategy.rbs +23 -0
  274. data/sig/pg_eventstore/subscriptions/subscription_feed_strategy.rbs +11 -0
  275. data/sig/pg_eventstore/subscriptions/subscription_feeder.rbs +13 -10
  276. data/sig/pg_eventstore/subscriptions/subscription_handler_performance.rbs +1 -1
  277. data/sig/pg_eventstore/subscriptions/subscription_runner.rbs +13 -2
  278. data/sig/pg_eventstore/subscriptions/subscription_runners_feeder.rbs +1 -8
  279. data/sig/pg_eventstore/subscriptions/subscriptions_lifecycle.rbs +4 -6
  280. data/sig/pg_eventstore/subscriptions/subscriptions_manager.rbs +29 -43
  281. data/sig/pg_eventstore/synchronized_array.rbs +4 -0
  282. data/sig/pg_eventstore/utils.rbs +10 -11
  283. data/sig/pg_eventstore/web/application.rbs +13 -3
  284. data/sig/pg_eventstore/web/paginator/base_collection.rbs +2 -0
  285. data/sig/pg_eventstore/web/paginator/event_types_collection.rbs +4 -0
  286. data/sig/pg_eventstore/web/paginator/events_collection.rbs +11 -11
  287. data/sig/pg_eventstore/web/paginator/helpers.rbs +6 -15
  288. data/sig/pg_eventstore/web/paginator/markers_collection.rbs +13 -0
  289. data/sig/pg_eventstore/web/paginator/stream_contexts_collection.rbs +4 -0
  290. data/sig/pg_eventstore/web/paginator/stream_names_collection.rbs +4 -0
  291. data/sig/pg_eventstore/web/paginator/streams_collection.rbs +30 -0
  292. data/sig/pg_eventstore.rbs +8 -26
  293. metadata +175 -20
  294. data/Dockerfile +0 -3
  295. data/lib/pg_eventstore/commands/all_stream_read_grouped.rb +0 -69
  296. data/lib/pg_eventstore/commands/regular_stream_read_grouped.rb +0 -31
  297. data/lib/pg_eventstore/subscriptions/queries/subscription_service_queries.rb +0 -78
  298. data/lib/pg_eventstore/web/views/home/partials/system_stream_filter.erb +0 -15
  299. data/sig/pg_eventstore/commands/all_stream_read_grouped.rbs +0 -16
  300. data/sig/pg_eventstore/commands/regular_stream_read_grouped.rbs +0 -8
  301. data/sig/pg_eventstore/subscriptions/queries/subscription_service_queries.rbs +0 -19
  302. data/sig/pg_eventstore/subscriptions/synchronized_array.rbs +0 -4
  303. /data/sig/interfaces/{_raw_event_handler.rbs → raw_event_handler.rbs} +0 -0
@@ -1,25 +1,20 @@
1
1
  module PgEventstore
2
2
  module Commands
3
- class SystemStreamReadPaginated < PgEventstore::AbstractCommand
4
- # _@param_ `stream`
5
- #
6
- # _@param_ `options`
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
- # _@param_ `events`
10
- #
11
- # _@param_ `max_count`
12
- def end_reached?: (::Array[PgEventstore::Event] events, Integer max_count) -> bool
8
+ private
13
9
 
14
- # _@param_ `events`
15
- #
16
- # _@param_ `direction`
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: () -> PgEventstore::Commands::Read
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
- include PgEventstore::Extensions::OptionsExtension
2
+ class Config < BasicConfig
3
+ module NodeRole
4
+ PRIMARY: Symbol
5
+ REPLICA: Symbol
6
+ STANDALONE: Symbol
4
7
 
5
- # _@param_ `name` — config's name. Its value matches the appropriate key in PgEventstore.config hash
6
- def initialize: (name: Symbol, **untyped options) -> void
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
- module Ruby30Patch
4
- end
3
+ @pool: ConnectionPool[PgConnection]?
5
4
 
6
- include PgEventstore::Connection::Ruby30Patch
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 shutdown: -> untyped
11
+ def discard_current_connection: -> void
16
12
 
17
- def with: () { (PG::Connection connection) -> untyped } -> untyped
13
+ def establish_connection: -> void
18
14
 
19
- def init_pool: () -> ConnectionPool[untyped]
15
+ def shutdown: -> void
20
16
 
21
- def pg_type_registry: () -> PG::BasicTypeRegistry
17
+ def with: () { (PgConnection connection) -> untyped } -> untyped
22
18
 
23
- # Returns the value of attribute uri.
24
- attr_accessor uri: String
19
+ private
25
20
 
26
- # Returns the value of attribute pool_size.
27
- attr_accessor pool_size: Integer
21
+ def init_pool: () -> ConnectionPool[PgConnection]
28
22
 
29
- # Returns the value of attribute pool_timeout.
30
- attr_accessor pool_timeout: Integer
23
+ def pg_type_registry: () -> PG::BasicTypeRegistry
31
24
  end
32
25
  end
@@ -5,28 +5,31 @@ module PgEventstore
5
5
  def to_h: () -> ::Hash[untyped, untyped]
6
6
  end
7
7
 
8
- class StreamNotFoundError < PgEventstore::Error
8
+ class StreamNotFoundError < Error
9
9
  # _@param_ `stream`
10
- def initialize: (PgEventstore::Stream stream) -> void
10
+ def initialize: (Stream stream) -> void
11
11
 
12
12
  # Returns the value of attribute stream.
13
- attr_accessor stream: PgEventstore::Stream
13
+ attr_accessor stream: Stream
14
14
  end
15
15
 
16
- class SystemStreamError < PgEventstore::Error
16
+ class SystemStreamError < Error
17
17
  # _@param_ `stream`
18
- def initialize: (PgEventstore::Stream stream) -> void
18
+ def initialize: (Stream stream) -> void
19
19
 
20
- attr_accessor stream: PgEventstore::Stream
20
+ attr_accessor stream: Stream
21
21
  end
22
22
 
23
- class WrongExpectedRevisionError < PgEventstore::Error
24
- # _@param_ `revision`
25
- #
26
- # _@param_ `expected_revision`
27
- #
28
- # _@param_ `stream`
29
- def initialize: (revision: Integer, expected_revision: (Integer | Symbol), stream: PgEventstore::Stream) -> void
23
+ class WrongExpectedRevisionError < Error
24
+
25
+ attr_accessor stream: Stream
26
+ attr_accessor revision: Integer
27
+ attr_accessor expected_revision: (Integer | Symbol)
28
+ attr_accessor verdict: Symbol
29
+
30
+ def initialize: (revision: Integer, expected_revision: (Integer | Symbol), stream: Stream, verdict: Symbol) -> void
31
+
32
+ private
30
33
 
31
34
  def user_friendly_message: () -> String
32
35
 
@@ -39,28 +42,52 @@ module PgEventstore
39
42
  def unmatched_stream_revision: () -> String
40
43
 
41
44
  def stream_descr: () -> String
45
+ end
42
46
 
43
- attr_accessor stream: PgEventstore::Stream
47
+ class WrongExpectedTypesRevisionError < Error
48
+ class Verdict
49
+ include Extensions::OptionsExtension
50
+ include Extensions::OptionsDefaults
44
51
 
45
- attr_accessor revision: Integer
52
+ attr_accessor verdict: Symbol
53
+ attr_accessor event_type: String | Symbol
54
+ attr_accessor current_revision: Integer
55
+ attr_accessor expected_revision: Integer | Symbol
56
+ attr_accessor expected_markers: Array[String]?
57
+ end
46
58
 
47
- attr_accessor expected_revision: (Integer | Symbol)
48
- end
59
+ attr_accessor stream: Stream
60
+ attr_accessor verdicts: Array[Verdict]
49
61
 
50
- class RecordNotFound < PgEventstore::Error
51
- # _@param_ `table_name`
52
- #
53
- # _@param_ `id`
54
- def initialize: (String table_name, (Integer | String) id) -> void
62
+ def initialize: (stream: Stream, verdicts: Array[Verdict]) -> void
55
63
 
56
- def user_friendly_message: () -> String
64
+ private
57
65
 
66
+ def event_descr: (Verdict verdict) -> String
67
+
68
+ def event_is_absent: (Verdict verdict) -> String
69
+
70
+ def event_is_present: (Verdict verdict) -> String
71
+
72
+ def event_revision_does_not_match: (Verdict verdict) -> String
73
+
74
+ def revision_descr: (Verdict verdict) -> String
75
+
76
+ def stream_descr: -> String
77
+
78
+ def user_friendly_message: -> String
79
+ end
80
+
81
+ class RecordNotFound < Error
58
82
  attr_accessor table_name: String
83
+ attr_accessor id: untyped
84
+
85
+ def initialize: (String table_name, untyped id) -> void
59
86
 
60
- attr_accessor id: (Integer | String)
87
+ def user_friendly_message: () -> String
61
88
  end
62
89
 
63
- class SubscriptionAlreadyLockedError < PgEventstore::Error
90
+ class SubscriptionAlreadyLockedError < Error
64
91
  # _@param_ `set` — subscriptions set name
65
92
  #
66
93
  # _@param_ `name` — subscription's name
@@ -77,7 +104,7 @@ module PgEventstore
77
104
  attr_accessor lock_id: Integer
78
105
  end
79
106
 
80
- class WrongLockIdError < PgEventstore::Error
107
+ class WrongLockIdError < Error
81
108
  # _@param_ `set` — subscriptions set name
82
109
  #
83
110
  # _@param_ `name` — subscription's name
@@ -94,7 +121,7 @@ module PgEventstore
94
121
  attr_accessor lock_id: Integer
95
122
  end
96
123
 
97
- class NotPersistedEventError < PgEventstore::Error
124
+ class NotPersistedEventError < Error
98
125
  # _@param_ `event`
99
126
  def initialize: (PgEventstore::Event event) -> void
100
127
 
@@ -103,32 +130,35 @@ module PgEventstore
103
130
  attr_accessor event: PgEventstore::Event
104
131
  end
105
132
 
106
- class MissingPartitions < PgEventstore::Error
133
+ class MissingPartitions < Error
107
134
  # _@param_ `stream`
108
135
  #
109
136
  # _@param_ `event_types`
110
- def initialize: (PgEventstore::Stream stream, ::Array[String] event_types) -> void
137
+ def initialize: (Stream stream, ::Array[String] event_types) -> void
111
138
 
112
- attr_accessor stream: PgEventstore::Stream
139
+ attr_accessor stream: Stream
113
140
 
114
141
  attr_accessor event_types: ::Array[String]
115
142
  end
116
143
 
117
- class TooManyRecordsToLockError < PgEventstore::Error
118
- def initialize: (PgEventstore::Stream stream, Integer number_of_records) -> void
144
+ class TooManyRecordsToLockError < Error
145
+ def initialize: (Stream stream, Integer number_of_records) -> void
119
146
 
120
- attr_accessor stream: PgEventstore::Stream
147
+ attr_accessor stream: Stream
121
148
 
122
149
  attr_accessor number_of_records: Integer
123
150
 
124
151
  def user_friendly_message: -> String
125
152
  end
126
153
 
127
- class WrappedException < PgEventstore::Error
154
+ class WrappedException < Error
128
155
  def initialize: (StandardError original_exception, Hash[Symbol, untyped] extra) -> void
129
156
 
130
157
  attr_accessor original_exception: StandardError
131
158
 
132
159
  attr_accessor extra: Hash[Symbol, untyped]
133
160
  end
161
+
162
+ class NotSupportedError < Error
163
+ end
134
164
  end
@@ -1,9 +1,13 @@
1
1
  module PgEventstore
2
2
  class Event
3
- include Extensions::OptionsExtension
4
-
3
+ MARKERS_METADATA_KEY: String
4
+ NON_EXISTING_EVENT_REVISION: Integer
5
5
  LINK_TYPE: String
6
6
  PRIMARY_TABLE_NAME: String
7
+ SYSTEM_KEY_PREFIX: String
8
+ SYSTEM_SYMBOL: String
9
+
10
+ include Extensions::OptionsExtension
7
11
 
8
12
  def ==: ((Object | Event) other) -> bool
9
13
 
@@ -35,6 +39,10 @@ module PgEventstore
35
39
 
36
40
  attr_accessor data: ::Hash[untyped, untyped]
37
41
 
42
+ attr_accessor markers: ::Array[String]
43
+
44
+ attr_accessor feature_markers: ::Array[FeatureMarker]
45
+
38
46
  attr_accessor metadata: ::Hash[untyped, untyped]
39
47
 
40
48
  attr_accessor link_global_position: Integer?
@@ -44,5 +52,11 @@ module PgEventstore
44
52
  attr_accessor link: Event?
45
53
 
46
54
  attr_accessor created_at: Time?
55
+
56
+ attr_accessor caused_by: Event?
57
+
58
+ attr_accessor correlation_id: String?
59
+
60
+ attr_accessor causation_id: String?
47
61
  end
48
62
  end
@@ -1,19 +1,14 @@
1
1
  module PgEventstore
2
2
  class EventDeserializer
3
- # _@param_ `middlewares`
4
- #
5
- # _@param_ `event_class_resolver`
6
- def initialize: (::Array[PgEventstore::Middleware] middlewares, _EventClassResolver event_class_resolver) -> void
3
+ def initialize: (::Array[Middleware] middlewares, _EventClassResolver event_class_resolver) -> void
7
4
 
8
- # _@param_ `raw_events`
9
- def deserialize_many: (::Array[::Hash[untyped, untyped]] raw_events) -> ::Array[PgEventstore::Event]
5
+ def deserialize_many: (::Array[::Hash[untyped, untyped]] | Enumerator[Hash[untyped, untyped]] raw_events) -> ::Array[Event]
10
6
 
11
- # _@param_ `attrs`
12
- def deserialize: (::Hash[untyped, untyped] attrs) -> PgEventstore::Event
7
+ def deserialize: (::Hash[untyped, untyped] attrs) -> Event
13
8
 
14
- def without_middlewares: () -> PgEventstore::EventDeserializer
9
+ def without_middlewares: () -> EventDeserializer
15
10
 
16
- attr_accessor middlewares: ::Array[PgEventstore::Middleware]
11
+ attr_accessor middlewares: ::Array[Middleware]
17
12
 
18
13
  attr_accessor event_class_resolver: _EventClassResolver
19
14
  end
@@ -0,0 +1,60 @@
1
+ module PgEventstore
2
+ class EventGlobalIndex
3
+ include Extensions::OptionsExtension
4
+ include Extensions::OptionsDefaults
5
+
6
+ def self.create_representation: (Hash[untyped, untyped] attributes,
7
+ repr: Symbol?) -> (EventGlobalIndex | SubscriptionRepr | ReadApiRepr | WriteApiRepr | RevisionCheckRepr)
8
+
9
+ attr_accessor global_position: Integer
10
+ attr_accessor subscription_position: Integer?
11
+ attr_accessor stream_revision: Integer
12
+ attr_accessor context_partition_id: Integer
13
+ attr_accessor stream_name_partition_id: Integer
14
+ attr_accessor event_type_partition_id: Integer
15
+ attr_accessor streams_global_index_id: Integer
16
+
17
+ module ReprType
18
+ REVISION_CHECK: Symbol
19
+ SUBSCRIPTION: Symbol
20
+ READ_API: Symbol
21
+ WRITE_API: Symbol
22
+ end
23
+
24
+ class SubscriptionRepr
25
+ include Extensions::OptionsExtension
26
+ include Extensions::OptionsDefaults
27
+
28
+ attr_accessor global_position: Integer
29
+ attr_accessor subscription_position: Integer
30
+ attr_accessor event_type_partition_id: Integer
31
+
32
+ def to_subscription_position_attrs: -> { global_position: Integer, subscription_position: Integer }
33
+ end
34
+
35
+ class ReadApiRepr
36
+ include Extensions::OptionsExtension
37
+ include Extensions::OptionsDefaults
38
+
39
+ attr_accessor global_position: Integer
40
+ attr_accessor event_type_partition_id: Integer
41
+ end
42
+
43
+ class WriteApiRepr
44
+ include Extensions::OptionsExtension
45
+ include Extensions::OptionsDefaults
46
+
47
+ attr_accessor global_position: Integer
48
+ attr_accessor event_type_partition_id: Integer
49
+ attr_accessor stream_revision: Integer
50
+ end
51
+
52
+ class RevisionCheckRepr
53
+ include Extensions::OptionsExtension
54
+ include Extensions::OptionsDefaults
55
+
56
+ attr_accessor sequence_number: Integer
57
+ attr_accessor stream_revision: Integer
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,9 @@
1
+ module PgEventstore
2
+ class EventMarker
3
+ include Extensions::OptionsExtension
4
+ include Extensions::OptionsDefaults
5
+
6
+ attr_accessor id: Integer
7
+ attr_accessor name: String
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ module PgEventstore
2
+ class EventMarkerIndex
3
+ include Extensions::OptionsExtension
4
+ include Extensions::OptionsDefaults
5
+
6
+ attr_accessor marker_id: Integer
7
+ attr_accessor streams_global_index_id: Integer
8
+ attr_accessor event_type_partition_id: Integer
9
+ attr_accessor global_position: Integer
10
+ attr_accessor stream_revision: Integer
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ module PgEventstore
2
+ module Extensions
3
+ module ActsAsConfigurable
4
+ def acts_as_configurable: (?default_config: Symbol, config_class: Class) -> void
5
+
6
+ module Configurable
7
+ @config: Hash[Symbol, Extensions::OptionsExtension]
8
+
9
+ @connection: Hash[Symbol, Connection]
10
+
11
+ attr_reader mutex: Thread::Mutex
12
+
13
+ def configure: (?name: Symbol) { (BasicConfig) -> untyped } -> untyped
14
+
15
+ def config: (?Symbol name) -> BasicConfig
16
+
17
+ def available_configs: () -> ::Array[Symbol]
18
+
19
+ def connection: (?Symbol name) -> Connection
20
+
21
+ private
22
+
23
+ def connection_options: (BasicConfig config) -> Hash[untyped, untyped]
24
+
25
+ def init_variables: -> void
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,7 @@
1
+ module PgEventstore
2
+ module Extensions
3
+ module OptionsDefaults
4
+ def ==: (untyped) -> bool
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ module PgEventstore
2
+ class FeatureMarker
3
+ include Extensions::OptionsExtension
4
+ include Extensions::OptionsDefaults
5
+
6
+ attr_accessor marker: String
7
+ attr_accessor description: String?
8
+ attr_accessor purpose: Symbol?
9
+ end
10
+ end
@@ -1,19 +1,23 @@
1
1
  module PgEventstore
2
2
  class Maintenance
3
- @config: PgEventstore::Config
3
+ @config: Config
4
4
 
5
- attr_reader config: PgEventstore::Config
5
+ attr_reader config: Config
6
6
 
7
- def initialize: (PgEventstore::Config config) -> void
7
+ def initialize: (Config config) -> void
8
8
 
9
- def connection: () -> PgEventstore::Connection
9
+ def connection: () -> Connection
10
10
 
11
- def delete_event: (PgEventstore::Event event, ?force: bool)-> bool
11
+ def delete_event: (Event event, ?force: bool)-> bool
12
12
 
13
- def delete_stream: (PgEventstore::Stream stream)-> bool
13
+ def delete_stream: (Stream stream)-> bool
14
14
 
15
- def maintenance_queries: () -> PgEventstore::MaintenanceQueries
15
+ def maintenance_queries: () -> MaintenanceQueries
16
16
 
17
- def transaction_queries: () -> PgEventstore::TransactionQueries
17
+ def transaction_queries: () -> TransactionQueries
18
+
19
+ private
20
+
21
+ def events_global_index_queries: -> EventsGlobalIndexQueries
18
22
  end
19
23
  end
@@ -0,0 +1,14 @@
1
+ module PgEventstore
2
+ module Middleware
3
+ class EventTracing
4
+ include Middleware
5
+
6
+ CAUSATION_ID_KEY: String
7
+ CORRELATION_ID_KEY: String
8
+
9
+ def self.causation_marker: (String marker) -> FeatureMarker
10
+
11
+ def self.correlation_marker: (String marker) -> FeatureMarker
12
+ end
13
+ end
14
+ end
@@ -3,13 +3,11 @@ module PgEventstore
3
3
  include Extensions::OptionsExtension
4
4
 
5
5
  attr_accessor id: Integer
6
-
7
6
  attr_accessor context: String
8
-
9
7
  attr_accessor stream_name: String?
10
-
11
8
  attr_accessor event_type: String?
12
-
13
9
  attr_accessor table_name: String
10
+ attr_accessor parent_context_partition_id: Integer?
11
+ attr_accessor parent_stream_name_partition_id: Integer?
14
12
  end
15
13
  end
@@ -1,9 +1,17 @@
1
1
  module PgEventstore
2
2
  class PgConnection < PG::Connection
3
+ PLACEHOLDER_RE: untyped
4
+
3
5
  def exec: (untyped sql) -> untyped
4
6
 
5
7
  def exec_params: (untyped sql, untyped params) -> untyped
6
8
 
9
+ def compile: (String sql, Array[untyped] params) -> String
10
+
11
+ def prepared_value: (untyped value) -> String
12
+
13
+ private
14
+
7
15
  def log: (untyped sql, untyped params) -> untyped
8
16
 
9
17
  def encode_value: (untyped value) -> untyped
@@ -0,0 +1,21 @@
1
+ module PgEventstore
2
+ class EventMarkerQueries
3
+ @query_strategy: QueryStrategy
4
+
5
+ attr_reader connection: Connection
6
+
7
+ def initialize: (Connection connection, QueryStrategy query_strategy) -> void
8
+
9
+ def create_indexes: (
10
+ Integer stream_idx_id,
11
+ Array[EventGlobalIndex::WriteApiRepr] write_api_events_index,
12
+ Hash[Integer, Set[Integer]] revision_to_marker_ids_map
13
+ ) -> void
14
+
15
+ def find_or_create_by: (Array[String] names) -> Array[EventMarker]
16
+
17
+ private
18
+
19
+ def deserialize: (PG::Result pg_result) -> Array[EventMarker]
20
+ end
21
+ end
@@ -1,47 +1,15 @@
1
1
  module PgEventstore
2
2
  class EventQueries
3
- # _@param_ `connection`
4
- #
5
- # _@param_ `serializer`
6
- #
7
- # _@param_ `deserializer`
8
- def initialize: (Connection connection, EventSerializer serializer, EventDeserializer deserializer) -> void
9
-
10
- # _@param_ `event`
11
- def event_exists?: (Event event) -> bool
12
-
13
- def grouped_events: (Stream stream, Array[Hash[untyped, untyped]] options_by_event_type, **untyped options)-> Array[Event]
14
-
15
- # _@param_ `events`
16
- def global_positions_from_db: (::Array[Event] events) -> ::Array[Integer]
3
+ attr_accessor connection: Connection
17
4
 
18
- # _@param_ `stream`
19
- def stream_revision: (Stream stream) -> Integer?
5
+ def initialize: (Connection connection) -> void
20
6
 
21
- # _@param_ `stream`
22
- #
23
- # _@param_ `options`
24
- def stream_events: (Stream stream, ::Hash[untyped, untyped] options) -> ::Array[Event]
7
+ def insert: (Stream stream, ::Array[Event] events) -> ::Array[Hash[String, untyped]]
25
8
 
26
- # _@param_ `stream`
27
- #
28
- # _@param_ `events`
29
- def insert: (Stream stream, ::Array[Event] events) -> ::Array[Event]
9
+ private
30
10
 
31
- # _@param_ `stream`
32
- #
33
- # _@param_ `events`
34
11
  def prepared_statements: (Stream stream, ::Array[Event] events) -> ::Array[(::Array[String] | ::Array[Object])]
35
12
 
36
13
  def links_resolver: () -> LinksResolver
37
-
38
- # Returns the value of attribute connection.
39
- attr_accessor connection: Connection
40
-
41
- # Returns the value of attribute serializer.
42
- attr_accessor serializer: EventSerializer
43
-
44
- # Returns the value of attribute deserializer.
45
- attr_accessor deserializer: EventDeserializer
46
14
  end
47
15
  end