Six principles for building robust yet flexible shared data applications

Click for: original source

Paul Done brought together a set of techniques he has identified to effectively deliver resilient yet evolvable data-driven applications.

In the talk, he identifies the resulting best practices as a set of six key principles, which he refers to as “resilient evolvability.” Below is a summary of the six principles:

  • Support optional fields. Field absence conveys meaning
  • For Finds, only ask for fields that are your concern, to support variability and to reduce change dependency
  • For Updates, always use in-place operators, changing targeted fields only. Replacing whole documents blows away changes made by other applications
  • For the rare data model Mutative Changes, adopt “Interim Duplication” to reduce delaying high priority business requirements
  • Facilitate entity variance, because real-world entities do vary, especially when a business evolves and diversifies
  • Only use Document Mappers if they are NOT “all or nothing,” and only if they play nicely with the other five principles

He also shared, on Github, a sample Rust application he built that highlights some of the patterns described. Nice read!

[Read More]

Tags data-science big-data management cio