リアクティブ アプリケーションの機能を示したいと考えています (コンテキストは学術プロジェクトです)。私たちの目標は、F# と Datomic を使用して、複数のアプリケーションを含むプロジェクトを構築することです。プロジェクトは次の部分で構成されています。
- An
event producer
: 人間の行動をシミュレートするタイムスタンプに関連付けられた GPS 座標を生成します。 event listener
最も近い関連する POI を返す POI (Point Of Interest) データベースに最初に接続されます。行は、GPS 座標と、営業時間を表す 2 つのタイムスタンプで構成されます。このアプリケーションを Gmail の背後にあるリアルタイム アプリケーションに同化させることができます。このアプリケーションは、雪について話し、暖かい服についてのコマーシャルを表示する最後のユーザーの電子メールをスキャンします。event listener
Datomic ですべてのユーザーの動きを保存する秒。- (オプション) Datomic を調べて、ユーザーに関する関連情報を見つけようとするアプリケーション。(多くの場合、その POI、勤務時間などに近い)
Datomic と F# (または関数型プログラミング) の両方に不慣れなため、未回答の質問がいくつかあります。
F#:
- イベント プロデューサーがイベントを生成し、2 つの外部アプリケーション (現在は同じマシンで実行中) によってリッスンされるためのベスト プラクティスは何ですか? メッセージを使用することもできますが、ここで重要な点は、イベント プロデューサーがリスナーを認識していないということです。
- この種のコードには C# を使用したほうがよいでしょうか (GPS 座標を実際に表示したいので、基本的にはいくつか
randoms
のloops
.
データ型:
- F# から datomic をクエリする最良の方法は何ですか? 私たちの視点は、Datomic の REST APIを使用することです。それを行う他の方法が見当たらなかったからです。この主題について話しているリソースがあれば、それを行う方法を理解するのに役立ちます.
- Datomic は POI データベースに適していますか? それとも、古き良きリレーショナル データベースを使用する必要がありますか? これまでのところ、POI テーブルは生のままです。つまり、処理されたイベントごとにデータベース全体にクエリを実行することを避けるために、POI をグリッドまたはツリーに編成する努力は一切行いません。(私たちはそれが悪いことを知っていますが、今のところ、それを機能させたいだけです (機能させる -> 正しくする -> 速くする... ですよね?)
部分的な回答は大歓迎です。その主題に興味のある将来の人々を助けるために、必要に応じて完全な回答を作成します.