I believe I understand what’s going on, but my understanding an a coworker’s is different, so I’m still not 100%-- just looking for clarification. I’m going to write my understanding, and if anybody has some time if they could point out any misconceptions, or expand on anything, that would be amazing help
Sync Gateway is a RESTful server (takes requests, returns responses), that wraps a non-relational database and keeps track of the latest version of documents
We have a native app that needs to keep data synchronized between users, so at the very least we need to have Sync Gateway running, so that the users can GET latest documents, and POST changes to documents
It appears the main thing about Sync Gateway is that the Couchbase Mobile Framework has built-in “Replication” functionality that interfaces with Sync Gateway, that automatically handles the GET/POST requests and subsequent responses.
It is unclear whether or not we can manually create the GET/POST requests, and bypass the Couchbase Mobile Framework
Couchbase Server is another RESTful server, that you can definitely manually create GET/POST requests (“Queries”), and then Couchbase Server has to be connected to a Sync Gateway, similarly how Couchbase Mobile connects to one.
So you create a Query to Couchbase Server, it will make a GET/POST request to Sync Gateway, and then Couchabase Server will create a response from that.
It appears the reason why you’d want Couchbase Server is to utilize the web portal to view and modify the data directly, as well as if you had a Web application that needed access to the Sync Gateway data (Because you can’t compile Couchbase Mobile and it’s Replication logic into a Web Application), as well as some additional security?
Though Sync Gateway already seems to have some security baked in, with user accounts
The only thing that is unclear is the concept of buckets in Couchbase Server
But all things considered here, if we just have a native application synchronizing data across users, do we even need to run Couchbase Server?