Explanation According to 1, you can use Apex to publish event messages from a Salesforce app by calling the EventBus.publish method. For example, if you defined a custom platform event called Low Ink, reference this event type as Low_Ink__e. Next, create instances of this event, and then pass them to the Apex method. According to 2 and 3, you can write an after insert Apex trigger on the event object to subscribe to incoming events. Triggers provide an autosubscription mechanism in Apex. Unlike triggers on standard or custom objects, triggers on platform events don't execute in the same Apex transaction as the one that published the event. The trigger runs asynchronously in its own process. Therefore, using a custom Platform Event and EventBus.publish method seems to be the appropriate publish/subscribe logic to meet the requirement.