event_engine 0.1.0 → 0.2.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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -0
  3. data/README.md +210 -399
  4. data/Rakefile +0 -1
  5. data/lib/event_engine/catalog_entry.rb +84 -0
  6. data/lib/event_engine/configuration.rb +9 -9
  7. data/lib/event_engine/definition_publisher.rb +22 -0
  8. data/lib/event_engine/event.rb +0 -8
  9. data/lib/event_engine/event_builder.rb +0 -8
  10. data/lib/event_engine/event_schema.rb +32 -57
  11. data/lib/event_engine/event_schema_json_loader.rb +19 -0
  12. data/lib/event_engine/handler_registry.rb +4 -4
  13. data/lib/event_engine/invalid_rules_error.rb +8 -0
  14. data/lib/event_engine/processing_rules.rb +39 -0
  15. data/lib/event_engine/processor_registry.rb +19 -0
  16. data/lib/event_engine/processor_resolver.rb +16 -0
  17. data/lib/event_engine/railtie.rb +54 -4
  18. data/lib/event_engine/rules_file.rb +14 -0
  19. data/lib/event_engine/schema_catalog_builder.rb +18 -0
  20. data/lib/event_engine/schema_registry.rb +7 -58
  21. data/lib/event_engine/unregistered_processor_error.rb +8 -0
  22. data/lib/event_engine/unroutable_event_error.rb +9 -0
  23. data/lib/event_engine/unrouted_events_error.rb +9 -0
  24. data/lib/event_engine/version.rb +1 -1
  25. data/lib/event_engine.rb +117 -123
  26. data/lib/tasks/event_engine_catalog.rake +15 -6
  27. data/lib/tasks/event_engine_rules.rake +10 -0
  28. data/the_local/agents/event_engine-develop.md +154 -0
  29. data/the_local/agents/event_engine-info.md +82 -0
  30. data/the_local/agents/event_engine-install.md +99 -0
  31. data/the_local/interface.yml +27 -0
  32. metadata +45 -48
  33. data/app/assets/config/event_engine_manifest.js +0 -1
  34. data/app/assets/stylesheets/event_engine/application.css +0 -15
  35. data/app/controllers/event_engine/application_controller.rb +0 -4
  36. data/app/helpers/event_engine/application_helper.rb +0 -4
  37. data/app/jobs/event_engine/application_job.rb +0 -4
  38. data/app/mailers/event_engine/application_mailer.rb +0 -6
  39. data/app/models/event_engine/application_record.rb +0 -5
  40. data/app/views/layouts/event_engine/application.html.erb +0 -15
  41. data/config/routes.rb +0 -2
  42. data/lib/event_engine/definition_loader.rb +0 -26
  43. data/lib/event_engine/dsl_compiler.rb +0 -50
  44. data/lib/event_engine/engine.rb +0 -56
  45. data/lib/event_engine/event_definition/inputs.rb +0 -43
  46. data/lib/event_engine/event_definition/payloads.rb +0 -47
  47. data/lib/event_engine/event_definition/schemas.rb +0 -158
  48. data/lib/event_engine/event_definition/validation.rb +0 -18
  49. data/lib/event_engine/event_definition.rb +0 -76
  50. data/lib/event_engine/event_schema_dumper.rb +0 -13
  51. data/lib/event_engine/event_schema_loader.rb +0 -37
  52. data/lib/event_engine/event_schema_merger.rb +0 -62
  53. data/lib/event_engine/event_schema_writer.rb +0 -47
  54. data/lib/event_engine/lifecycle_definition.rb +0 -86
  55. data/lib/event_engine/process_type.rb +0 -26
  56. data/lib/event_engine/reference/guide.md +0 -129
  57. data/lib/event_engine/reference.rb +0 -16
  58. data/lib/event_engine/schema_catalog.rb +0 -50
  59. data/lib/event_engine/schema_compatibility.rb +0 -50
  60. data/lib/event_engine/schema_diff.rb +0 -35
  61. data/lib/event_engine/schema_drift_guard.rb +0 -38
  62. data/lib/event_engine/subject_registry.rb +0 -40
  63. data/lib/event_engine/the_local/agents/event_engine-develop.md +0 -142
  64. data/lib/event_engine/the_local/agents/event_engine-info.md +0 -140
  65. data/lib/event_engine/the_local/agents/event_engine-install.md +0 -140
  66. data/lib/event_engine/the_local.rb +0 -55
  67. data/lib/generators/event_engine/install_generator.rb +0 -31
  68. data/lib/generators/event_engine/templates/event_schema.rb +0 -10
  69. data/lib/generators/event_engine/templates/initializer.rb +0 -4
  70. data/lib/tasks/event_engine_schema.rake +0 -82
  71. data/lib/tasks/event_engine_schema_check.rake +0 -20
  72. data/lib/tasks/event_engine_tasks.rake +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47b43f18ac9a1a5d3afc2e169344b1750499409496e2035bcc25e23ed5ec7c13
4
- data.tar.gz: 31ad25b00b80dd1f53a3005f7a6a7f87c1c0fd4328d3fa638467192622251e6b
3
+ metadata.gz: dec18ac1cb2f4605efaec53cc844453046e5ee7d9e1c111bb7a303ac8e10eb03
4
+ data.tar.gz: a1e46a6755d4f04675ee8a7931dc226f6d386de00bf5c69aea2cc644b3c68bd7
5
5
  SHA512:
6
- metadata.gz: 42338a458274a692268e1c95bf003f85a8053f3903b3383813c3780f70d13d23a3035e1b9e4435fdf1542344ddf4442aa7210d4be5cfe8cd9deb7a8e3ced8cef
7
- data.tar.gz: 4621cf3779124f63c686e23ce3414bf67d4d7683b338153da3e1a24a7bf10776e2f82c085cff57a89e88b7e9e5c9e5bb228257ad0642d22747c31adabd4f327a
6
+ metadata.gz: 5ecdfe7997ff911c9ee0cb24b55ebdf3a749b9f3a038884e320eeddfb4c3bb10ee8b405b03593c51c4709bb3a151640cdfdb3c541e9cbd975f40b9e023058b00
7
+ data.tar.gz: fba7d789ab7a5dbefb02dbcc368bee0379f7131552413b33914bc8a1391af7e33c9080e98f307d391acb1d5f17119e855b2d497cbbfed2f7c0704a85a031056e
data/CHANGELOG.md CHANGED
@@ -7,6 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.0] - 2026-07-29
11
+
12
+ This release completes the split between **authoring** and **runtime**. Events are
13
+ now declared with `event_engine-event_definition` and compiled into a committed
14
+ catalog; this gem builds a validated event from that catalog and hands it to a
15
+ processor. How an event is processed is declared by the host in a rules file.
16
+
17
+ ### Added
18
+
19
+ - **Processing rules.** `config/event_rules.yml` declares which processor handles
20
+ each event, resolved **event → pack → default**. `event_engine:catalog` writes the
21
+ file alongside the catalog, listing every catalogued event so a new one is visible
22
+ rather than silently unrouted; rules you have already decided are preserved.
23
+ - **Processor registry.** `EventEngine.register_processor(name, processor)`, with
24
+ processor gems registering themselves under the process types they service.
25
+ - **Pack discovery.** `EventEngine.schema_sources` prefers `publisher_schema_paths`
26
+ when set and otherwise discovers every pack that registered itself, so a host with
27
+ packs in its Gemfile needs no per-pack configuration.
28
+ - **`DefinitionPublisher`**, registered at boot, so a pack's generated helper routes
29
+ into `EventEngine.emit` with no wiring in the host.
30
+ - **`event_engine:rules:check`** — verifies every rule names a registered processor
31
+ and that no catalogued event is left unrouted. Intended for CI or deploy.
32
+ - Errors that name the fix: `UnregisteredProcessorError`, `UnroutedEventsError`,
33
+ `InvalidRulesError`.
34
+
35
+ ### Changed
36
+
37
+ - **Breaking.** `process_type` now comes from the rules file, not the schema. The
38
+ catalog is the event's contract — what it carries — and no longer describes what
39
+ happens to it. Previously `emit` read `schema.process_type`, which raised
40
+ `NoMethodError` for any event authored by a pack.
41
+ - **Breaking.** `EventEngine::EventDefinition::Schema` is now
42
+ `EventEngine::CatalogEntry`, at `lib/event_engine/catalog_entry.rb`. The old file
43
+ shared a require path with `event_engine-event_definition`, so in an app running
44
+ both gems this gem's own class never loaded.
45
+ - **Breaking.** The Rails engine is now a `Rails::Railtie`. Hosts with
46
+ `mount EventEngine::Engine => "/…"` must remove that line; the gem served no routes.
47
+ - **Breaking.** `event_engine:schema:catalog` is now `event_engine:catalog`.
48
+
49
+ ### Removed
50
+
51
+ - **Breaking.** The authoring layer — the DSL, compiler, definition loader, lifecycle
52
+ definitions, schema writers and authoring rake tasks. Declare events with
53
+ `event_engine-event_definition` instead.
54
+ - **Breaking.** `Configuration#default_processor`, `#domain_processors` and
55
+ `#event_processors`. Processing is declared in the rules file, which is now the only
56
+ source for that decision.
57
+ - **Breaking.** `EventEngine::SubjectRegistry`, `EventEngine.define_subjects` and
58
+ `.subject_registry`. Subjects are an authoring concern; the runtime passes through
59
+ the subject its catalog entry declares.
60
+ - The markdown catalog printer (`SchemaCatalog`). It omitted the domain, the
61
+ `from:`/`attr:` mapping and the fingerprint; `db/event_schema.json` is complete.
62
+ - Unreferenced `ProcessType` and `EventSchemaMerger`.
63
+
64
+
10
65
  ## [0.1.0] - 2026-06-25
11
66
 
12
67
  ### Added