Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Salesforce Developer
medium

How do you publish and consume Platform Events from Apex?

Platform Events are the Salesforce Pub/Sub mechanism. You define an event type as metadata (with __e suffix), publish events from Apex/Flow, and consume them from Apex triggers, Flows, or external clients.

Define the event (one-time setup): Setup -> Platform Events -> New. Add fields like Order_Id__c, Status__c, Timestamp__c. The event becomes Order_Created__e.

Publish from Apex:

`apex Order_Created__e evt = new Order_Created__e( Order_Id__c = '001xxx', Status__c = 'Pending', Timestamp__c = DateTime.now() );

Database.SaveResult sr = EventBus.publish(evt); if (!sr.isSuccess()) { for (Database.Error err : sr.getErrors()) { System.debug(err.getMessage()); } } `

Consume via Trigger (triggers are the most common subscriber):

apex trigger OrderCreatedTrigger on Order_Created__e (after insert) { for (Order_Created__e evt : Trigger.new) { // process } }

External subscribers: connect to the Pub/Sub API (or older Streaming API/CometD) to receive events in near-real-time.

Key behaviour:

  • AsynchronousEventBus.publish queues the event; subscribers run separately.
  • At-least-once delivery — events may be delivered more than once; subscribers must be idempotent.
  • 72-hour retention — events available to subscribers for 72 hours via replay.
  • Publishing in a transaction — by default, publish happens on commit-2 (after success). For "fire and forget regardless of outcome", use publishImmediateDML operation type when defining the event.

Use cases:

  • System-to-system signalling — "OrderApproved" event triggers downstream fulfilment.
  • Decoupled architecture — module A publishes, modules B and C consume independently.
  • Bridging Salesforce to external — external middleware subscribes via Pub/Sub API.

Limits: rate limits per org per hour; event size cap per event.

Why this answer works

Modern integration. Mentioning idempotency, 72-hour retention, and publishImmediateDML signals senior depth.

Follow-ups to expect

Related dictionary terms