If you're here, you either found a mistake, have a better way to explain something, or you're sufficiently mad about my opinions on virtual views. All of these are valid reasons to get involved!
This is the easy play. Please open an GitHub issue if you:
- Found a technical error: "Actually, Trino doesn't work that way..."
- Have a question: "Does this pattern work with Athena?"
- Want to suggest an improvement: "You should add an example for X..."
- Just want to complain: "This entire section is confusing and I don't know why but it is"
All of these are helpful. Seriously. Even the complaints.
Look, I'll be honest. The odds of me accepting a pull request that significantly revises this manifesto are...honestly low. This is a personal portfolio project and I'm trying to establish a coherent voice and perspective, based on years of using these ideas with Trino and Iceberg. If you have a big idea, open an issue and let's hash it out.
If I got something wrong about Trino, Iceberg, SQL standards, or database behavior, please tell me. I want this to be technically accurate, not just opinionated.
If something is confusing, unclear, or poorly explained, I want to know. You don't need to have the fix, just pointing out "this section lost me" is valuable.
If you have a more compelling example that explains a point better than mine, open an issue with details!
If I made assumptions that aren't obvious, or skipped steps that beginners would need, let me know.
This is a personal manifesto advocating for a specific architectural pattern. It's opinionated by design. I'm not trying to be neutral or cover every possible database system equally. Trino is the reference implementation because it's where I originally developed and refined these ideas, and because it's awesome. 🐰
If you disagree with the core premise (that virtual views are useful), that's fine, but this probably isn't the document for you. If you agree with the premise but see something wrong, please contribute.
This project uses (but does not require) Claude Code for help with research, fact checking, generating and validating examples, and general upkeep. The goal in doing so is to focus available time on improving the quality of these ideas and their presentation. The size and scope of this document is large enough to benefit from a good thinking partner. The CLAUDE.md file provides project context for Claude Code sessions. If you haven't used Claude Code yet, these resources are super helpful:
- https://code.claude.com/docs
- https://www.anthropic.com/engineering/claude-code-best-practices
- https://www.siddharthbharath.com/claude-code-the-complete-guide/
Please be respectful. Critique ideas, not people. GitHub is a public forum, so act accordingly.
By contributing (issues, PRs, comments), you agree that your contributions can be used under the same CC0 1.0 license as the rest of this project. Basically, you're giving your feedback to the public domain, same as the document itself.