“Your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.”
Dr. Ian Malcolm, Spielberg, Steven. Jurassic Park. Universal Pictures, 1993.
This famous line from Jurassic Park questions the ethical bounds of scientific experimentation. It should be no surprise that the phrase also applies to technical recommendations. When there are multiple ways to implement systems, ask yourself if the approach should be used.
When distributing information, initial thoughts are to “bolt on” capabilities to current approaches. Given enough time and money, existing tools can be “coaxed” to support services they were not originally designed to handle. Two cases demonstrate my point. Blockchains were not designed to process SQL-style queries and relational databases were not designed to support replication. This does not mean that relational databases can’t be replicated. Backups and copies of databases have been commonplace for decades. I am simply pointing out that replication was not a primary design consideration of relational databases.
If this post seems cryptic, I’ll provide some context. I work in the real estate industry and there is a long-standing practice of sharing information about listings among sales professionals. This includes occupancy and other showing instructions that affect the safety and/or privacy of sellers, buyers and agents. Internet sites present listing information to consumers that do not include this kind of information.
There is no single source of real estate listings and the most popular way to share listing information is to replicate databases. Synchronization mechanisms ensure that consumers and professionals have accurate property information. These mechanisms work, but they can be clumsy and inefficient to maintain.
Recent suggestions to improve synchronization include layering a “push” technique over databases. When changes occur in one database, they are “pushed” to other databases. If databases are not listening for changes due to scheduled maintenance downtime or internet interruption, a recovery procedure is used to catch up. Databases were designed to operate independently but can be “coaxed” to support replication.
Although blockchain and distributed ledgers were designed to address replication, they do not support queries with the same efficiency found in relational databases. They do support Smart Contracts to enforce business rules, but simple queries such as “show me all property listings in a specific area of the city” require extra design consideration. Blockchain easily handles the complexities of specific properties, but “sets” of properties are challenging.
Common sense should be used to find the right tool for the job. Blockchain can coexist with databases.
Leave a Reply