Hi folks, After meeting with a few folks from the community(JB, Dmitri, Keith, Russell, etc), I put together a short guidance doc for anyone who wants to add a new persistence back-end (think DynamoDB, Cassandra, etc.) to Polaris. The goal is to keep our persistence layer clean and pluggable while avoiding surprises in the core codebase.
Highlights - Stay on the public APIs - No business-logic bleed-through - UnsupportedOperationException is okay when new API methods appear and an older impl hasn’t caught up yet. Where does the code live? - Preferred: its own repo (polaris-dynamodb, etc.) to keep the main repo slim. - If you must: a single self-contained module in the main repo, which needs justification and zero cross-module leakage. - Needing API tweaks? Post the proposal here first and let’s vote if it’s a big change. The full draft is here: https://docs.google.com/document/d/1FEQ3f1XXKG_H7QFI-LN8lEkVljXoNNl2Bx4HVmj3UEI/edit?usp=sharing, it’s only a page and a half. What I’m asking for - Does the separation-of-concerns stance feel right? - Are the API-change steps clear enough? I’ll fold in feedback and post a final version next week. Thanks in advance for the eyes! Yufei