sgr follows the decentralized Git model where any
sgr installation can act
as a remote, or a peer, for the purposes of pushing and pulling datasets. In
essence, the local
sgr client can communicate with the local and the remote
sgr engine over the PostgreSQL wire protocol to determine what data it needs
to push and pull. This works on top of the Postgres authentication where the
current role name determines which datasets a user can write to.
The two-engine sync example showcases setting up data sharing between two Splitgraph engines.
Splitgraph itself is a special kind of a
sgr remote. Clients can communicate with it over the same (very restricted)
PostgreSQL protocol to push and pull images but can't check them out. In
sgr uploads objects to an S3-compatible storage instead of the
remote engine itself.
You can use
sgr without Splitgraph, but if you're interested in using it to
share datasets and use public datasets in Splitfiles, you probably want to use
Splitgraph, and should read the