# Dubbo Admin Events

> Implements and reviews dubbo-admin EventBus dispatching. Use when the user asks about Event, Emitter, Subscriber, SubscriptionManager, EventBus component registration, Subscribe or Unsubscribe behavior, Send dispatch rules, subscriber ProcessEvent flow, resource-kind based routing, or event error handling under pkg/core/events/. Do not use for a domain subscriber unless the task changes the event bus contract or dispatch semantics.

- Skill: `apache/dubbo-admin-events` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add apache/dubbo-admin-events`
- Raw SKILL.md: https://api.skillmd.com/api/skills/apache/dubbo-admin-events/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: apache (https://skillmd.com/u/apache)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/apache/dubbo-admin-events

---


# dubbo-admin Events

## Purpose

Use this skill to modify or explain the shared EventBus contract used by discovery, engine, informers, and subscribers.

## When to use

Use for EventBus interfaces, resource-kind dispatching, subscriber registration uniqueness, synchronous processing, and event dispatch error behavior.

Do not use for business logic inside a single subscriber unless EventBus semantics change.

## Inputs

Required:
- EventBus behavior, interface, or dispatch problem.
- Event producer or subscriber involved.

Optional:
- Event type.
- Old and new resource objects.
- Subscriber names for the same resource kind.

If missing, inspect `pkg/core/events/eventbus.go` and `pkg/core/events/component.go` first.

## Workflow

1. Read `pkg/core/events/eventbus.go` for Event, Emitter, Subscriber, SubscriptionManager, and EventBus interfaces.
2. Read `pkg/core/events/component.go` for the concrete EventBus implementation.
3. Trace producers that call `events.NewResourceChangedEvent` and `Emitter.Send`.
4. Trace consumers implementing `ResourceKind`, `Name`, and `ProcessEvent`.
5. Read `references/eventbus-dispatch.md` before changing dispatch semantics.

## Output format

Return event source, resource kind, subscribers called, error behavior, changed files, and validation evidence.

## Validation

- Confirm `Send` uses `NewObj()` first and `OldObj()` for delete-like events.
- Confirm subscriber names are unique per resource kind.
- Confirm subscriber errors are logged and do not stop later subscribers.
- Run tests or targeted reasoning for discovery and engine consumers when dispatch changes.

## Edge cases

- Events with both old and new nil cannot be routed.
- Dispatch is synchronous; long subscriber work blocks the caller.
- EventBus should stay domain-neutral; put business logic in subscribers.

## References

- Read `references/eventbus-dispatch.md` for concrete dispatch rules and failure behavior.

