Global ordering is usually the wrong request
Teams ask for a totally ordered stream when what they need is order within a subject.
Total ordering across a whole stream requires a single point through which every event passes. That point becomes the throughput ceiling and the availability risk, and it buys a guarantee most applications never use: almost no business rule depends on the relative order of two unrelated accounts.
The requirement is nearly always per-subject. Deposits and withdrawals on one account must be applied in sequence. A device's state transitions must be applied in sequence. Across subjects, concurrency is not just acceptable — it is the reason the system scales.
The practical work is therefore choosing the key. A key that is too coarse (region, tenant) recreates the bottleneck; a key that is too fine (event id) destroys the ordering you needed. The right key is the entity your invariants are written about.