It's a requirement in the sense that sharing a datastore would break the abstraction. Each service should be independent from the others, which necessitates a separate data store.
Consistency should be maintained at the application level if you want to build a robust service, because doing it in the database leads to a single point of failure (the database)
Consistency should be maintained at the application level if you want to build a robust service, because doing it in the database leads to a single point of failure (the database)