docs: events now optional — Status headers + conditional HTML rendering
- ADR-015: Status → Optional with scaffold command + behavior note (bus absent means no-op, IJobQueue unaffected) - events-and-jobs.md: prerequisite callout block explaining core-events is optional, how to scaffold, and which features require it - data-flow-explainer.html: note bus is optional in BindProductionContext blurb; add inline comment in code snippet that bus is scaffoldable Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,18 @@
|
||||
|
||||
Walkthrough for adding cross-feature events and background jobs to a feature. For the architectural rationale, see [ADR-015](../decisions/adr-015-events-and-jobs.md) and [the full spec](../superpowers/specs/2026-05-08-events-and-jobs-design.md).
|
||||
|
||||
> **Prerequisite — `@repo/core-events` is optional.**
|
||||
> The event bus (`IEventBus`, `InMemoryEventBus`, `PayloadJobsEventBus`) lives
|
||||
> in `@repo/core-events`, which ships as a scaffoldable package rather than a
|
||||
> permanent fixture. If `packages/core-events/` does not exist in your repo,
|
||||
> run `pnpm turbo gen core-package events` first, then wire the bus into
|
||||
> `apps/web-next/src/server/bind-production.ts` as described in the generator's
|
||||
> next-steps output.
|
||||
>
|
||||
> Background jobs (`IJobQueue`, `gen job`) work without core-events — they only
|
||||
> require `@repo/core-shared/jobs`. Cross-feature event fanout (`gen event
|
||||
> consume`) additionally requires core-events.
|
||||
|
||||
The three rules to keep in mind:
|
||||
|
||||
- **E0** — Events are for cross-feature decoupling. In-feature reactions are direct use-case calls.
|
||||
|
||||
Reference in New Issue
Block a user