# Component events, propagation and Lightning Message Service

*Platform Developer II Study Guide · User Interface · Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/component-events-propagation-and-lightning-message-service*

Pick the communication channel from where two components sit: @api and aura:method calls down, LWC custom events and Aura component events up, Lightning Message Service or Aura application events across. Covers propagation flags, retargeting, message scope, owner versus container handling and LWC events caught by an Aura parent.

- Certification: Salesforce Platform Developer II
- Exam section: User Interface
- Study guide: https://www.certifyforce.com/study-guide/platform-developer-ii

**Official exam objective:**

> Given a scenario, implement the correct method to communicate events through Lightning Web Components or Aura Components.

## What the exam expects

- Choose between an `@api` method, a custom event and Lightning Message Service (or `aura:method`, a component or an application event) from where the components sit.
- Pick the most restrictive `bubbles`/`composed` configuration that reaches a given listener, and explain `event.target` retargeting.
- Subscribe to a message channel with the right context and scope.
- Fix Aura code that fires or handles a component or application event with the wrong syntax, or expects a container to handle an event.
- Handle a Lightning web component's event in an enclosing Aura component.

Key terms: **owner** (the outermost component whose markup declares a component), **container** (a component that renders others through a facet such as `{!v.body}` without owning them), **retargeting** (changing `event.target` to an element in the listener's scope), **message channel** (the `LightningMessageChannel` Lightning Message Service publishes on).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Default CustomEvent flags | `bubbles: false`, `composed: false` | [Configure Event Propagation](https://developer.salesforce.com/docs/platform/lwc/guide/events-propagation.html) |
| LWC propagation phase | Bubbling only; capture isn't supported | [Configure Event Propagation](https://developer.salesforce.com/docs/platform/lwc/guide/events-propagation.html) |
| Non-primitive `detail` | Copy to a new object first, or listeners can mutate it | [Create and Dispatch Events](https://developer.salesforce.com/docs/platform/lwc/guide/events-create-dispatch.html) |
| Bubbles and composed event | Part of the public API; namespace the type | [Configure Event Propagation](https://developer.salesforce.com/docs/platform/lwc/guide/events-propagation.html) |
| Default message scope | Active area only; utility items are always active | [Define the Scope of the Message Service](https://developer.salesforce.com/docs/platform/lwc/guide/use-message-channel-scope.html) |
| Whole-app subscription | `{ scope: APPLICATION_SCOPE }` as `subscribe()`'s fourth argument | [Define the Scope of the Message Service](https://developer.salesforce.com/docs/platform/lwc/guide/use-message-channel-scope.html) |
| `pubsub` module | Not officially supported; only where LMS isn't | [Communicate Across the DOM](https://developer.salesforce.com/docs/platform/lwc/guide/events-pubsub.html) |
| Fire a component event | `cmp.getEvent("registeredName")` then `fire()` | [Fire Component Events](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_component_fire.htm) |
| Container handling | Add `includeFacets="true"` to the container's handler | [Handling Bubbled or Captured Component Events](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_component_bubbling.htm) |
| Application event handler | No `name` attribute | [Handling Application Events](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_application_handling.htm) |
| `aura:method` | Parent calls the child's method directly; runs synchronously | [aura:method](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/ref_tag_method.htm) |

## Check yourself

- Why is `bubbles: true, composed: true` discouraged for a reusable component's event?
- When does a Lightning Message Service subscriber need `APPLICATION_SCOPE`?
- Why doesn't a container that renders a child through `{!v.body}` handle the child's component event by default?
- Which call gets an application event instance, and which gets a component event?
- When does `event.target` differ from the element that dispatched an LWC event?

## Sources

- [Configure Event Propagation](https://developer.salesforce.com/docs/platform/lwc/guide/events-propagation.html)
- [Events Best Practices](https://developer.salesforce.com/docs/platform/lwc/guide/events-best-practices.html)
- [Create and Dispatch Events](https://developer.salesforce.com/docs/platform/lwc/guide/events-create-dispatch.html)
- [Communicate with Events](https://developer.salesforce.com/docs/platform/lwc/guide/events.html)
- [Call Methods on Child Components](https://developer.salesforce.com/docs/platform/lwc/guide/create-javascript-methods.html)
- [Communicate Across the DOM](https://developer.salesforce.com/docs/platform/lwc/guide/events-pubsub.html)
- [Lightning Message Service](https://developer.salesforce.com/docs/platform/lwc/guide/use-message-channel.html)
- [Define the Scope of the Message Service](https://developer.salesforce.com/docs/platform/lwc/guide/use-message-channel-scope.html)
- [Subscribe and Unsubscribe from a Message Channel](https://developer.salesforce.com/docs/platform/lwc/guide/use-message-channel-subscribe.html)
- [Send Events to an Enclosing Aura Component](https://developer.salesforce.com/docs/platform/lwc/guide/events-sending-to-aura-components.html)
- [Fire Component Events](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_component_fire.htm)
- [Handling Bubbled or Captured Component Events](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_component_bubbling.htm)
- [Fire Application Events](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_application_fire.htm)
- [Handling Application Events](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_application_handling.htm)
- [Application Event Propagation](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/events_application_propagation.htm)
- [aura:method](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/ref_tag_method.htm)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 11 linked practice questions, and unlimited timed mock exams are included with the Platform Developer II pack (USD $19): https://www.certifyforce.com/practice-exams
