Ember Subs -

#if this.priceFeed.isConnected Current price: this.priceFeed.currentPrice else Connecting... /if ✅ No manual observers – just tracked properties and lifecycle hooks. 4. Subscriptions with Ember Data (Live Queries) If your backend pushes changes via WebSockets, update the store directly:

// app/components/price-display.js import Component from '@glimmer/component'; import inject as service from '@ember/service'; export default class PriceDisplayComponent extends Component @service priceFeed; ember subs

If you really need a global event bus:

@cached get fullName() return $this.firstName $this.lastName ; #if this

socket = null;

// app/services/event-bus.js import Service from '@ember/service'; import Evented from '@ember/object/evented'; export default class EventBusService extends Service.extend(Evented) {} import inject as service from '@ember/service'

// Publish this.eventBus.trigger('data-updated', some: 'data' );