Fully understand `enableSchemaHooks`

We are currently performing a 4.x to 5.x update, and everything seems fine in terms of breaking changes for our app, except for enableSchemaHooks.

Noting the changes listed on the changelog, I see that this option is recommended for multiple servers which connect to a single database. Below is a network diagram of our setup for prod and staging.


  1. Is it okay to set the enableSchemaHooks option for staging and prod? Staging is a single server, and prod has several instances.
  2. Could anyone explain (in simple terms) what is happening under the hood of this new option and if there is anything we need to be cautious of?
  3. MongoDB Atlas v5.0.11 with a replica set seems to have Change Stream functionality - please can someone confirm this is the case.

Many thanks for your time.