Transactional
These are the notes for GoZync 3. Docs for the latest version of GoZync--GoZync 4--can be found here. GoZync 4 is a free upgrade and is highly recommended (hint: it's faster).
What does it mean that GoZync is "transactional"?
A transaction means that everything associated with a record stays with the record. In a sync context that means the record, and all its related records, are bound together in an indivisible package. You, as the developer, control how far across the graph – how many tables – that package spans. Transactions can also include any scripted edits that have to happen on either the mobile or hosted side – scripts like notifications or logging.
All of that goes with the record, or none of it goes. Outside of a transaction, some or all of that could happen per record, per sync.
When you have a shaky connection, or turn off your device mid-sync, you could sync an invoice, but not its line items. Or sync the invoice and its line items, but not send the notification. Or sync the invoice, fail the line items, and the send the notification.
While you'll see this on FileMaker networked solutions sometimes (usually as incomplete records, or totals that don't match) you see it much more often in distributed (Go) solutions where disconnect and record lock can be common.
GoZync eliminates the possibility of incomplete syncs by enclosing all of the data within a transaction envelope. If a transaction completes a Zync, it's complete. If it fails because of connection problems, it leaves the data untouched.
Transactions are what let us say that when you see "uploaded" on a Zynced record in your mobile file, you know that record made it to the host / server.
Learn more about transactions.
Todd Geist, co-author of GoZync, pioneered the concept of transactions for FileMaker Pro. Read more on this here:
The FileMaker Transactions reference page
Older Articles: filemaker-go-and-transactions and inventory-transactions.
Wikipedia definition: http://en.wikipedia.org/wiki/Database_transaction