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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +55 -0
- data/README.md +210 -399
- data/Rakefile +0 -1
- data/lib/event_engine/catalog_entry.rb +84 -0
- data/lib/event_engine/configuration.rb +9 -9
- data/lib/event_engine/definition_publisher.rb +22 -0
- data/lib/event_engine/event.rb +0 -8
- data/lib/event_engine/event_builder.rb +0 -8
- data/lib/event_engine/event_schema.rb +32 -57
- data/lib/event_engine/event_schema_json_loader.rb +19 -0
- data/lib/event_engine/handler_registry.rb +4 -4
- data/lib/event_engine/invalid_rules_error.rb +8 -0
- data/lib/event_engine/processing_rules.rb +39 -0
- data/lib/event_engine/processor_registry.rb +19 -0
- data/lib/event_engine/processor_resolver.rb +16 -0
- data/lib/event_engine/railtie.rb +54 -4
- data/lib/event_engine/rules_file.rb +14 -0
- data/lib/event_engine/schema_catalog_builder.rb +18 -0
- data/lib/event_engine/schema_registry.rb +7 -58
- data/lib/event_engine/unregistered_processor_error.rb +8 -0
- data/lib/event_engine/unroutable_event_error.rb +9 -0
- data/lib/event_engine/unrouted_events_error.rb +9 -0
- data/lib/event_engine/version.rb +1 -1
- data/lib/event_engine.rb +117 -123
- data/lib/tasks/event_engine_catalog.rake +15 -6
- data/lib/tasks/event_engine_rules.rake +10 -0
- data/the_local/agents/event_engine-develop.md +154 -0
- data/the_local/agents/event_engine-info.md +82 -0
- data/the_local/agents/event_engine-install.md +99 -0
- data/the_local/interface.yml +27 -0
- metadata +45 -48
- data/app/assets/config/event_engine_manifest.js +0 -1
- data/app/assets/stylesheets/event_engine/application.css +0 -15
- data/app/controllers/event_engine/application_controller.rb +0 -4
- data/app/helpers/event_engine/application_helper.rb +0 -4
- data/app/jobs/event_engine/application_job.rb +0 -4
- data/app/mailers/event_engine/application_mailer.rb +0 -6
- data/app/models/event_engine/application_record.rb +0 -5
- data/app/views/layouts/event_engine/application.html.erb +0 -15
- data/config/routes.rb +0 -2
- data/lib/event_engine/definition_loader.rb +0 -26
- data/lib/event_engine/dsl_compiler.rb +0 -50
- data/lib/event_engine/engine.rb +0 -56
- data/lib/event_engine/event_definition/inputs.rb +0 -43
- data/lib/event_engine/event_definition/payloads.rb +0 -47
- data/lib/event_engine/event_definition/schemas.rb +0 -158
- data/lib/event_engine/event_definition/validation.rb +0 -18
- data/lib/event_engine/event_definition.rb +0 -76
- data/lib/event_engine/event_schema_dumper.rb +0 -13
- data/lib/event_engine/event_schema_loader.rb +0 -37
- data/lib/event_engine/event_schema_merger.rb +0 -62
- data/lib/event_engine/event_schema_writer.rb +0 -47
- data/lib/event_engine/lifecycle_definition.rb +0 -86
- data/lib/event_engine/process_type.rb +0 -26
- data/lib/event_engine/reference/guide.md +0 -129
- data/lib/event_engine/reference.rb +0 -16
- data/lib/event_engine/schema_catalog.rb +0 -50
- data/lib/event_engine/schema_compatibility.rb +0 -50
- data/lib/event_engine/schema_diff.rb +0 -35
- data/lib/event_engine/schema_drift_guard.rb +0 -38
- data/lib/event_engine/subject_registry.rb +0 -40
- data/lib/event_engine/the_local/agents/event_engine-develop.md +0 -142
- data/lib/event_engine/the_local/agents/event_engine-info.md +0 -140
- data/lib/event_engine/the_local/agents/event_engine-install.md +0 -140
- data/lib/event_engine/the_local.rb +0 -55
- data/lib/generators/event_engine/install_generator.rb +0 -31
- data/lib/generators/event_engine/templates/event_schema.rb +0 -10
- data/lib/generators/event_engine/templates/initializer.rb +0 -4
- data/lib/tasks/event_engine_schema.rake +0 -82
- data/lib/tasks/event_engine_schema_check.rake +0 -20
- data/lib/tasks/event_engine_tasks.rake +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dec18ac1cb2f4605efaec53cc844453046e5ee7d9e1c111bb7a303ac8e10eb03
|
|
4
|
+
data.tar.gz: a1e46a6755d4f04675ee8a7931dc226f6d386de00bf5c69aea2cc644b3c68bd7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|