Search docs

Docs search

Event Architecture

Review implemented validation rules for unhandled events, circular event chains, synchronous event misuse, and naming inconsistency.

Why it matters

Event Architecture findings help teams keep asynchronous boundaries intentional, handled, and understandable.

What this category covers

  • Published events with matching handlers.
  • Event chains without circular processing risk.
  • Events used for decoupling rather than hidden synchronous calls.

Implemented rules

These are the currently implemented rules in this category. Cloud stores and displays the uploaded findings from local validation; it does not add future or speculative rules.

Rule IDRule titleCategorySeverityShort explanationExample violationRemediation guidance
AP-EVT-001Published event has no handlerEvent ArchitecturewarningFlags events that appear to be published without any subscribed handler.RepositoryUploadedEvent is published, but no handler is registered.Add or restore the expected handler. Remove the event if it is obsolete. Align event names between publisher, contract, and handler registration.
AP-EVT-002Circular event chain riskEvent ArchitecturewarningFlags event chains that may loop back to their starting workflow.PolicyUpdated triggers RepositoryRevalidated, which triggers PolicyUpdated again.Break the cycle with a clearer event boundary. Add idempotency and correlation guards. Document intentional event choreography.
AP-EVT-003Synchronous dependency disguised as eventEvent ArchitecturewarningFlags events used like immediate synchronous calls between modules.Checkout publishes PriceCalculatedEvent and waits for the handler to return the price.Use an explicit service boundary for synchronous dependencies. Use events for post-commit or eventually consistent work. Document expected consistency and failure handling.
AP-EVT-004Event naming inconsistencyEvent ArchitecturewarningFlags event names that do not follow the repository's event naming convention.StartUpload, RepositoryUploadedEvent, and upload_finished all describe the same style of event.Use the established event naming convention. Prefer past-tense fact names for domain events when that is the local pattern. Update publisher, handler, and contract names together.
Event Architecture | ArchPilot Docs