Fsync means "wait for acknowledgement after each request", if Fsync is off, all calls are fire-and-forget, no errors are reported. There are a few Fsync levels though, you can use it to make the call block until the data has been relayed to at least N other nodes.
no, fsync means wait for the data file to be synced to disk. {safe:true} is what you are talking about. {j:true} is probably what yo should be using, {w:majority} is also important, and {fsync:true} is the data file option
I think given that one of the parameters is called "fsync" using "fsync" should mean that.
I'm not sure if there's ever a good reason to use {fsync: true} vs {j: true}