I have also used Google Spreadsheets to act as a frontend of a database that people can dynamically update. I use the onEdit() function in google apps script and have found that it is not always reliable if edits are made in quick succession. I would definitely be interested on how you created your bidirectional synced system.