Clojure(クロージャー)

Stitch(ステッチ)

2018年4月19日

Stitch

ClojureまたはClojureScriptでどのような製品やサービスを構築していますか?

Stitch(ステッチ)は、SalesforceやFacebook Adsなどのツールに接続し、それらのプラットフォームからデータを一元的な場所(データウェアハウス)に統合して分析できるようにするETL(抽出、変換、ロード)サービスです。

Clojureを使い始めてどれくらいですか?

2016年の創業以来、本番環境でClojureを使用しています。初期のチームメンバーの多くは、以前の職場でClojureを使用していたため、当然の選択でした。

チームの規模はどれくらいですか?

Clojureでバックエンドサービスを開発しているエンジニアは12人います。

最も気に入っているClojureライブラリは何ですか?

ring、compojure、http-kitなど、いくつかの異なるネイティブClojureライブラリを使用しています。ただし、特定の目的に対して十分にサポートされたJavaライブラリが存在する場合は、Javaバージョンを使用し、Clojureの優れたJava相互運用性サポートに頼る傾向があります。たとえば、さまざまなAWSサービス、Apache ZooKeeper、Apache KafkaのJavaクライアントライブラリを使用しています。

ClojureまたはClojureScriptのお気に入りの機能は何ですか?

たくさんありますが、いくつか際立ったものがあります

  • イミュータビリティ。参照透過性に可能な限り依存するように努めており、これによりアプリケーションのテストと理解が容易になります。

  • インタラクティブな開発。私たちの多くはCIDERを搭載したEmacsを使用しており、インタラクティブに開発、デバッグ、テストを行うことができます。

使用しているスタックは何ですか?

Webサービスは、ELBロードバランサーの背後にあるAWS EC2インスタンスで実行されています。WebサーバーとしてringとJettyを使用しています。新しいデータベースのほとんどはPostgres RDSです。一部のアプリケーションでは、キャッシュにRedisを使用しています。

実際のデータパイプラインは、Kafkaにデータを格納するClojure Webサービスと、データを宛先にルーティング、変換、ロードするさらにいくつかの小さなClojureサービスによってフロントされています。

ClojureまたはClojureScriptを使用することは、ビジネスにとってなぜ重要ですか?

Clojureを使用することで、他の言語で記述した場合よりもシンプルで、小さく、理解しやすい堅牢なアプリケーションを開発できます。Javaライブラリのエコシステム全体を利用できます。開発者は、実行中のJVMに接続してコードを実行することにより、問題を迅速にデバッグできます。また、clojure.testとnREPL接続のインタラクティブ性を組み合わせることで、緊密な反復的なTDDループを使用して迅速にプロトタイプを作成できます。

Clojureのストーリーを共有したい場合は、こちらのフォームにご記入ください。