Firefox Sync specification regarding "storage.sync" API

I have some questions regarding the Firefox Sync that I couldn’t find in the docs:

  1. when are the data pushed? Is there some interval or is it event based?
  2. when are they pulled?
  3. can I force push / pull?
  4. is there some difference compared to Chrome Sync?
  5. is there some merging strategy (on the top level object)? If I store {a: 1} on one device and {b: 2} on second, will the storage eventually contains {a: 1, b: 2} or just one of these depending on who synchronized later?

I was hoping for a real-time sync (powered by some websocket), but it seems that it’s much much slower.