Microservices: ES per service or one instance shared by all services?

Hi guys, i’m moving from a monholit application to a more granular architecture. I know this topic had been already discussed in various thread, but i’m still full of doubts and i would like to confront with you further in order to get a better understanding of opportunities and tradeoffs.
Some of you is using ES in a similar scenario?

In case of 1 instance per service, how do you share events with the other parts of the system and how do you guarantee order of events?

Thanks in advance for all of your precious idea and suggestions.

“Pattern: Database per service”


“[data] cannot be accessed directly by other services”.
"You do not need to provision a database server for each service. "
“options are: Private-tables-per-service – each service owns a set of tables that must only be accessed by that service”

So any concept of 1 shared db with “namespaces” or access control is considered “1 db per service”

Regardless of technical solution (1/many databases), I would avoid depending on ordering from different services. IMHO it kind of defeats the point of separating them.