Rate Limiterについて調べてみた

Abstract

システムの安定運用に関するツールということで今回気になり調べてみました。

レートリミッターは、システムの過負荷を防ぎ、安定したパフォーマンスを維持するためのツールです。一定の時間内に処理できるリクエストやタスクの数を制限することで、システムの信頼性と可用性を向上させることに寄与します。

Mustache Option List

Abstract

OpenAPI Generator のコード生成をカスタマイズする際に、mustache構文で苦戦(どんなオプションを使えるのかがわからなかった。)したので、そのときに助かった方法をメモしておきます。

Typescript Import順のソート

Abstruct

Node.jsのプロジェクトで、import の順番をきれいにする(buildin, ライブラリ, 独自ライブラリの順にimportする)方法を調べたので、載せておきます。

Decision Table - Typescript version

Abstruct

TypescriptでDecision Table(決定表) を作ってみたので、載せておきます。

決定表は、「条件」と「その条件のときの値」を関連付けて定義できるユーティリティとして便利なのですが、なかなかライブラリとして世の中に転がっておらず、、今回自作してみました。

Apollo Server Settings

Abstruct

Apollo Server Express ( apollo-server-express - npm ) を使ったサンプルアプリを作ってみました。

以下のことを考慮しながら作ると少し躓いたので、この記事にまとめておきます。

  • チュートリアル Get started with Apollo Server - Apollo GraphQL Docs そのままに利用するだけだと、GraphQLのschema定義やresolverを1ファイルに記述することになり少し煩雑になってしまうので、きれいに分けたい。
  • どうせならスキーマ定義と一緒にバリデーション定義も盛り込みたい。