I have a master org that holds all data. Multiple different orgs each hold a subset of master org's data. The database schema is the same across all these orgs. Whenever a record is changed in the master org, the updates have to be reflected in the other orgs where the record is present and vice versa. The record match may be based on a field, say for example, email address. What is the best way to achieve this? Does Streaming API help in this scenario?
S2S is a pretty decent option for the scenario you describe. It certainly would be less work than the Streaming API. There is some coding required to do trigger-based sharing (as well as your rules for which orgs get which subset of records) but it's not much and there are code examples around.
I wrote up a pretty concise view of my thoughts on the suitability of S2S in this old answer but AFAIK the bullet points all still apply.