In a relational database, foreign keys are normally used to associate records stored in different tables, but wouldn’t it be nice to define relationships dynamically without having to add extra columns or tables? And while we’re at it, how about having sparse relationships by associating a record directly with any other record like “post X was last edited by user #123” or “post X was flagged for review by user #456” (who happens to be a moderator)?

Continue reading

First a little context: At Faradai we had been using PostgreSQL on the ext4 file system for a number of years until it recently became evident that the constantly growing database size (over 5 TB at the time) would start to cause issues in general performance, cloud costs, and the ability to have reliable backups. We reviewed a number of alternative file systems, and chose ZFS mainly for its following three features…

Continue reading

Vendor lock-in: An unfortunate condition that forces a person or company to continue using a disliked product or service just because they invested in it so much. Vendor lock-in used to affect mostly large companies using mission critical legacy applications, but as more and more companies move to the cloud, cloud providers started to rediscover the joys of vendor lock-in by offering “value-added” services that simplify the lives of software developers who have better things in life than managing servers and databases…

Continue reading

Aycan Gulez