本日、Python用Momentoクライアントのv1.0リリースを発表できることを嬉しく思います。
Momentoでは、シンプルさは私たちの北極星のひとつです。サーバーサイドでもクライアントサイドでも、Momentoの体験はシンプルで楽しいものでありたいと考えています。サーバー側では、キャッシュを作成するだけで利用でき、スケーリングや運用の心配はすべて私たちにお任せください。クライアント側では、キャッシュとやりとりするバグのないコードをシンプルかつ直感的に書くことができ、チューニングやスレッドセーフティ、その他の難解な懸念について考えるのに多くの時間を費やす必要がないSDKを持つことを意味します。
今週、私たちはPythonクライアントの最後の仕上げを行いました。APIが既存のアプリケーションやライブラリに簡単に統合できるように、特別な注意とテストを行いました。今、私たちはその苦労の結果を皆さんと共有できることに興奮しています!
補足:SDKの設計、構築、チューニングについて私たちがどのように考えているのか、その詳細を知りたい方は、Shockingly Simpleブログシリーズをご覧ください!
Pythonクライアント・ライブラリのハイライト
asyncioと従来のサポート
私たちのライブラリは、2つのCacheClient
実装を備えています:1つは非同期型、もう1つは従来型(ブロッキング)です。Python3.4で導入されたasyncio
は、マルチスレッドに煩わされることなく、ネットワークI/Oバウンドアプリケーションを応答性の高いものに変えることができます。このプログラミングモデルは、Momento Cacheと相性が良いと言えます。既存の asyncio
コードから CacheClientAsync
を利用することで、イベント ループのブロックやアプリケーションのボトルネックを心配する必要がありません。アプリケーションが同期的であっても心配ありません。同期的なコードでも使用できるように、ブロッキングコールを行う従来の CacheClient
も用意しています。
コレクション・データ・タイプのサポート
Pythonクライアントも新しいコレクションデータ型をサポートします!Momentoキャッシュに文字列とバイト配列に加えて、リスト、辞書、セットも格納できるようになりました!Python コレクション API は、結果を表す Python の型 (dict
、list
、set
など) を柔軟に指定できるので、既存のコードにシームレスに統合できます。
バグのないコードのための発見可能なレスポンス・タイプ
APIコールから得られるレスポンスには複数のタイプがある。例えば、キャッシュから値を取得するためにGet
リクエストを行うと、レスポンスは Hit
、Miss
、Error
のいずれかになります。どれが返ってくるかによって、レスポンスにアクセスする必要があるプロパティのセットが大きく異なります(例えば、Hit
にはキャッシュからのデータを含むValue
がありますが、Miss
にはありません)。Pythonの型ガードのインスタンスを使って、どのレスポンス型を受け取ったかをチェックし、Pythonの型チェッカが正しい型を推論して、それぞれのケースに対して強い型付けされたレスポンスオブジェクトを与えることができます。これは、IDEで可能なすべての戻り値の型を簡単に発見でき、バグを防ぐためのコンパイル時の型チェックを得られることを意味します。実行時よりもコンパイル時の方がバグを発見しやすいものです!(おまけ: Python-3.10以上の新しいバージョンでは、構造パターンマッチを使うことを強くお勧めします)。
簡単なロギング設定
Momento Pythonクライアントは標準のLogging
ライブラリと統合されているため、Momentoクライアントからのログは他のログと同じ宛先にルーティングされます。
ビルド済みコンフィギュレーション
ネットワーク・クライアントのチューニングは大変な作業であり、最適な設定は環境によって大きく異なることがあります。例えば、ラップトップから探索やデバッグを行うのに最適な設定と、クラウド上の低レイテンシの本番環境で必要な設定はおそらく同じではないでしょう。物事をシンプルに保つために、Momento Pythonクライアントには、このようなさまざまなタイプの環境向けに設計されたいくつかの構成があらかじめ用意されています。しかし、チューニングにエンジニアの時間を費やす必要がないように、90%のケースをカバーできるように最善を尽くしました。
インタラクティブな環境で使いやすく
MomentoのPythonクライアントは、IDEを使用していても、対話的な環境で探索していても、使いやすいものであるべきだと考えています。これを可能にするために、クライアントライブラリには豊富なドキュメントがあり、str
とrepr
を完全にカバーしています。REPLやJupyterノートブックで試してみてください!
Pythonクライアントを試してみましょう
今すぐMomento Pythonクライアントの1.0バージョンで始めることができます。まだ無料のMomentoキャッシュを作成していない場合は、Getting Start ドキュメントをご覧ください。ソフトウェアのインストールは不要で、ブラウザからMomento CLIを試すことができます!また、自分のマシンで試す準備ができたら、GitHubにあるPythonクライアントを始めるためのドキュメントをチェックしてください!
気に入っていただければ幸いです!もし気に入っていただけないようでしたら、ぜひご意見をお聞かせください。GitHub issueを発行するか、support@momentohq.com までメール下さい。
Coming Soon
エキサイティングな新機能に関する追加アナウンスにご期待ください。1.0バージョンでは、基本的なキャッシュ管理操作、文字列、バイト、新しいコレクション・データ型をサポートしています。今後のリリースでは、さらにエキサイティングな機能を追加する予定です!