We’re sorry we missed you at re:Invent, but we can still meet!

メジャーリリース:Momento Goクライアントv1.0

GoクライアントSDKのハイライトをご覧ください! そして試してみて下さい!

Ellery Addington-White
著者

Share

本日、Go用Momentoクライアントの1.0リリースを発表できることを嬉しく思います。

Momentoでは、シンプルさは私たちの北極星のひとつです。サーバー側でもクライアント側でも、Momentoの体験はシンプルで楽しいものでありたいと考えています。サーバー側では、キャッシュを作成して移動するだけで、スケーリングや運用の心配はすべて私たちにお任せください。クライアント側では、キャッシュとやりとりするバグフリーのコードをシンプルかつ直感的に書くことができ、チューニングやスレッドセーフティ、その他の難解な懸念について考えるのに多くの時間を費やす必要がないSDKを持つことを意味します。

そのために私たちはここ数週間、Goクライアント・ライブラリに磨きをかけ、APIがクリーンで作業しやすいことを確認し、Go環境から簡単に利用できるようにしてきました。そして、完成したものを皆さんと共有する準備が整いました!

Goクライアント・ライブラリのハイライト

One client

momento.CacheClientはスレッドセーフで、ネットワーク接続の管理をすべて行います。スレッドセーフやコネクションプールを心配する必要はありません。

バグのないコードのための発見可能なレスポンス・タイプ

APIコールから得られるレスポンスには複数のタイプがあります。例えば、キャッシュから値を取得するために Get リクエストを行った場合、レスポンスは *responses.GetHit または *responses.GetMiss になるかもしれません。どちらが返ってくるかによって、レスポンスにアクセスする必要があるプロパティは大きく異なります。(例えば、GetHitではキャッシュからのデータを含むr.ValueString()関数が公開されますが、GetMissでは公開されません)。 Momento GoクライアントはTypeスイッチを使用して、これらのケースごとに強く型付けされたレスポンスオブジェクトを提供します。実行時よりもコンパイル時の方がバグを発見しやすいものです!

ネイティブなGoのエラー

Goエコシステムのエラーパッケージを活用するため、Go SDKではネイティブのGoエラー型を使い続けています。レスポンス・タイプと組み合わせることで、エラーが返されたときにそれが本当にエラーであることを確信できます。また、開発者としては、最後に返されたエラー値がnilかどうかをチェックするだけで、使い慣れた方法でGoコードを書き続けることができます。また、いくつかの標準エラー・タイプが用意されているので、必要に応じて、それぞれのエラーを制御された方法で処理することができます。たとえば、タイムアウトエラーをカスタムで処理すると、次のようになります:

if err != nil {
    var momentoErr momento.MomentoError
    if errors.As(err, & momentoErr) {
        if momentoErr.Code() != momento.TimeoutError {
            // handle timeout error in custom way
        }
    }
}

お気に入りのGoロギングフレームワークと統合する

Momento Go クライアントはシンプルなロギングインターフェイスを提供しており、任意のロギングフレームワークと統合することができます。デフォルトのロガーは Go std lib log パッケージを使用しますが、MomentoLoggerFactory を渡すことで、アプリケーションの他の部分と同じ宛先にログをルーティングするように Momento クライアントを設定できます。 この例では Logrus と統合する方法を示していますが、 zerolog や zap、その他のロギングフレームワークにも簡単に適用できます。

ビルド済みコンフィギュレーション

ネットワーク・クライアントのチューニングは大変な作業で、最適な設定は環境によって大きく異なることがあります。例えば、ラップトップからエクスプローラーやデバッグを行うのに最適な設定と、クラウド上の低レイテンシーの本番環境で必要な設定は、おそらく同じではないでしょう。物事をシンプルに保つために、Momento Goクライアントには、このようなさまざまなタイプの環境向けに設計された、いくつかの構成があらかじめ用意されています。しかし、チューニングにエンジニアの時間を費やす必要がないように、90%のケースをカバーできるように最善を尽くしました。

Goクライアントを今すぐお試しください

今すぐ1.0バージョンのMomento Cache Goクライアントを使い始めることができます。まだ無料の Momento キャッシュを作成していない場合は、Momento getting started docs をご覧ください。その後、GitHub の Go クライアントを始めるためのドキュメントをご覧ください!

気に入っていただければ幸いです!もし気に入っていただけないようでしたら、ぜひご意見をお聞かせください!GitHub issueを発行するか、support@momentohq.com

Share