kevy
このページ

kevy がやらないこと

プロダクトの形は、備える機能と同じくらい、拒むものによって決まります。 このページは kevy の拒否を一箇所に集めたものです——「X はできるか」の 答えが、それを前提に作り始める前に手に入るように。各項目は理由と、 その要求を代わりに何が満たすのかを書いています。

ここでの拒否は恒久的です。「まだ」ではありません——設計がそれを前提に 組まれている線であり、そのうちの一本を変えることは、機能追加ではなく再設計です。

4 本の線

1. Redis の契約は私たちが変えていいものではない。 kevy が Redis の コマンド名で答えるものは、Redis がその名で意味するものです。新しい能力 は既存の動詞に載せるのではなく、自分の名前空間(IDX.*FEED.*VIEW.*FT.*VEC.*)で来ます。ですから「改良版」の SET セマン ティクスはありませんし、既存の応答形状にフィールドを足すこともしません。

2. 意味と実行計画はアプリケーション側に残す。 kevy は保存して返す のであって、データが何を意味するかも、クエリをどう実行すべきかも決め ません。この線が拒むのが、クエリ言語としての SQL、join、コストベース プランナです。エンジンが計画を選んだ瞬間、あなたのレイテンシには、 あなたが下しておらず見ることもできない決定が混ざります。代わりに提供 するのは宣言されたアクセスパスです——索引はあなたが名指しし、コスト はあなたが予測できます。

3. トポロジは宣言するものであって、発見するものではない。 メンバー 表は設定から来ます。動的なのはロールで、メンバーシップではありません。

4. ネットワークは信頼される前提。 kevy は認証も転送暗号化も恒久的に 行いません——その両方を備えたプロキシ(Caddy、nginx、サービスメッシュ、 あるいはプライベートサブネット)の後ろに置いてください。

拒否一覧(領域別)

領域拒否するもの理由と、代わりに使うもの
クエリクエリ言語としての SQL、join、コストベースプランナ、ビュー層の場当たり述語線 2——索引かビューを宣言する。IDX.QUERY / VIEW.QUERY がアクセスパスを明示的に名指しする
クエリ書き込みパスのコールバック / トリガ書き手は自分が何を書いたか既に知っている。コールバックは書き込みの中にレイテンシを隠す
セキュリティAUTH、TLS、ACL、マルチユーザ線 4——プロキシ層で終端する
クラスタシャード化マルチマスタ、DC 間アクティブ・アクティブ、CRDT設計上シングル DC・単一分断耐性。競合のないマージはアプリ層のモデル
クラスタRaft / 強一貫ログレプリケーションこの設計が提供する一貫性は quorum lease と epoch フェンス。完全な合意ログは別のプロダクト
クラスタオンライン resharding、gossip 探索、動的メンバーシップ線 3——設定を変えてそのメンバーを再起動する
ストレージストア横断トランザクション、テナンシ意味論エンジンの境界の外。その上で組む
プラットフォームサーバーの no_std / MCU ターゲット5 つの stone クレートは既に no_std 対応。サーバーには OS が要る

関数面の現在地

kevy の SQL 形状の面は畳み込み器であって、クエリエンジンではあり ません。リレーショナルデータベースから移ってくるアプリがスカラ式を実装 し直さずに済むよう、それを計算します。そしてプランナを要するものは 名指しで拒否し、決して黙って落としません

変更のたびに 2 本の線で止められます:

  • 能力:この弧が提供すると宣言した関数サブセットのうち 82.5% が 正しく畳めること。この比率は上げることしか許されません。
  • 誠実さ:89 個のプローブファイル全体で誤答ゼロ。拒否は自ら 名乗りますが、誤答は名乗りません。

これに依存するかを決めるときに見るべきは 2 本目です。拒否は呼び出し箇所 で見えるので、本番ではなくコードを書いている最中に見つかります。