The Assignment

Dissecting the Problem

Investigating Alternatives

Create the user, and then publish the event

Publish the event first, then create the user

Create the user and publish it in a transaction

Implementing the Outbox Pattern

How about database trigger?

Granularity of events

Batch vs Stream Processing