DenoがSlackの新しいプラットフォーム基盤に採用されたことを発表。SlackのBotなどはDenoベースでの開発に

DenoとSlackは、Slackが発表した新しいプラットフォーム基盤にDenoが採用されたことを明らかにしました。

https://platform.twitter.com/embed/Tweet.html?dnt=false&embedId=twitter-widget-1&features=eyJ0ZndfdGltZWxpbmVfbGlzdCI6eyJidWNrZXQiOlsibGlua3RyLmVlIiwidHIuZWUiLCJ0ZXJyYS5jb20uYnIiLCJ3d3cubGlua3RyLmVlIiwid3d3LnRyLmVlIiwid3d3LnRlcnJhLmNvbS5iciJdLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X2hvcml6b25fdGltZWxpbmVfMTIwMzQiOnsiYnVja2V0IjoidHJlYXRtZW50IiwidmVyc2lvbiI6bnVsbH0sInRmd190d2VldF9lZGl0X2JhY2tlbmQiOnsiYnVja2V0Ijoib24iLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X3JlZnNyY19zZXNzaW9uIjp7ImJ1Y2tldCI6Im9uIiwidmVyc2lvbiI6bnVsbH0sInRmd19jaGluX3BpbGxzXzE0NzQxIjp7ImJ1Y2tldCI6ImNvbG9yX2ljb25zIiwidmVyc2lvbiI6bnVsbH0sInRmd190d2VldF9yZXN1bHRfbWlncmF0aW9uXzEzOTc5Ijp7ImJ1Y2tldCI6InR3ZWV0X3Jlc3VsdCIsInZlcnNpb24iOm51bGx9LCJ0Zndfc2Vuc2l0aXZlX21lZGlhX2ludGVyc3RpdGlhbF8xMzk2MyI6eyJidWNrZXQiOiJpbnRlcnN0aXRpYWwiLCJ2ZXJzaW9uIjpudWxsfSwidGZ3X2V4cGVyaW1lbnRzX2Nvb2tpZV9leHBpcmF0aW9uIjp7ImJ1Y2tldCI6MTIwOTYwMCwidmVyc2lvbiI6bnVsbH0sInRmd19kdXBsaWNhdGVfc2NyaWJlc190b19zZXR0aW5ncyI6eyJidWNrZXQiOiJvbiIsInZlcnNpb24iOm51bGx9LCJ0ZndfdHdlZXRfZWRpdF9mcm9udGVuZCI6eyJidWNrZXQiOiJvZmYiLCJ2ZXJzaW9uIjpudWxsfX0%3D&frame=false&hideCard=false&hideThread=false&id=1572615325904154624&lang=ja&origin=https%3A%2F%2Fwww.publickey1.jp%2Fblog%2F22%2Fdenoslackslackbotdeno.html&sessionId=3416c17cce63a5eb8d52b9c5cb29da64faf93a93&siteScreenName=publickey&theme=light&widgetsVersion=1bfeb5c3714e8%3A1661975971032&width=550px

Slackの新しいプラットフォームとは、Slackの機能をユーザーが拡張するBotなどの、いわゆるSlackアプリケーションのための開発と実行を実現するものです。

これまでは、Slackが用意したAPIを呼び出すプログラムを実行する場合、Slackアプリケーションのデベロッパー自身がそのプログラムを実行する環境をSlackの外部、例えばAWS Lambdaなどに用意する必要がありました。

Slackの新しいプラットフォームによって、Slack自身がこの実行環境と開発環境を提供することになります。これによりSlackアプリケーションの開発と運用はこれまでよりも簡単で柔軟なものになることが期待されます。

DenoをベースとしたSlackアプリ特化のサーバレスプラットフォーム

新しいプラットフォームでは、アプリケーションの機能を構成する「Functions」と、その機能を連携させる「Workflows」、そしてこれらをどのような条件で呼び出すかを設定する「Trigger」の3つのコンポーネントをデベロッパーが記述することによってSlackアプリケーションを開発することができます。

アプリケーションはいわゆるサーバレスのスタイルになっており、何らかのイベントによって呼び出されたときだけ実行され、処理が終われば終了します。

そのほかに、データを永続的に保存できるDatastore、アプリケーションの構成を設定する「App manifest」、アプリケーションのログを取得する「Logging」、そしてさまざまな機能をコマンドラインから呼び出し、実行できる「Slack CLI」なども新しいプラットフォームの機能として用意されています。

これらの機能を備えた新しいプラットフォームの基盤となっているのがDenoです。CLIもDenoがベース、SDKはTypeScriptで書かれており、SlackアプリケーションもTypeScriptで開発できます。

SlackはCLIも含めたDenoの使いやすさ、V8をベースとした高速性、そして高いセキュリティを評価し採用を決めたとしています。

DenoにとってもSlackという超大型のサービスのアプリケーション基盤に採用されたことは、Node.jsやBunなどとの競合に対する差別化とさらなる普及に向けて、そしてDenoの開発元であるDeno Landのビジネスにとっても、大きな前進になることは間違いないでしょう。