- Typically returning all columns from 'buildings', possibly using other
tables to join and filter.
- Using database types and constraints - let the db do validation and
consistency checking!
- Using transaction around updating a building record, adding log entry
- Using JSON patch to record forward and reverse patches (hope this will
give small data size compared to all-columns or before-and-after
strategy)