Start with the domain
Define the records and operations the extension owns. A clear boundary makes it easier to understand what belongs in the extension and what belongs in the frontend.
Use explicit actions
Express meaningful changes as actions with an actor and context. Apply permissions and business rules deliberately so rejected work can be explained.
Connect external work through outboxes
When an action causes work in an external service, use the execution and outbox model to keep delivery attempts and outcomes connected.
Plan the handover
Document configuration, data ownership, and the behavior around failure and retries. The next developer should be able to follow the extension’s intended workflow.