【Ditto】よくある質問
最終更新日: 2025-12-09(時間が経っている場合は正確性に注意してください)
正確な情報は公式サイトをご確認ください:
■ 製品概要・ユースケース
Q. Dittoとはどのような製品ですか
- A. アプリに組み込むSDK + クラウドサービス。SDK同士がメッシュネットワークを構築し、その上でデータを同期させられるローカルDB。インターネット接続がある際にデータをクラウドへ吸い上げ可能。分散DBのためメッシュネットワークでデータを中継(バケツリレー)できる
Q. Dittoはどのような課題を解決する製品ですか
- A. インターネット接続不要のメッシュネットワークが構築可能なため、サーバーの障害時やWi-Fiのトラブル時などにもデータ同期を継続させられる。分散DBのためメッシュネットワークでデータを中継(バケツリレー)できる
Q. Dittoを導入すると、現場や業務で何ができるようになりますか
- A. サーバーの障害時やWi-Fiのトラブル時などにもアプリ間でデータ同期(業務継続)が可能になる。またデータを中継(バケツリレー)できる
Q. どのような仕組みでインターネットなしでもデータ同期を実現しているのですか
- A. SDKは、OSに備わった通信のAPIを利用している。LAN、BLE(Bluetooth Low Energy)、Wi-Fi Aware/AWDLなど
Q. どのような業界・現場で利用されていますか
- A. 店舗システムと航空など
Q. どのようなタイプのアプリケーションに向いていますか
- A. 主にタブレットなどのモダンな端末を利用した現場、店舗など。製造業や倉庫なども
Q. なぜ注文・POS・現場業務システムでの採用が多いのですか
- A. インターネット接続が途切れることによる売上ダメージが大きいため
Q. 他社の導入事例・実績を教えてください(公開可能な範囲で)
- A. 日本ではJAL・ANA、海外ではChick-Fil-AというハンバーガーチェーンやPOS事業者など。米軍でも検証中
Q. 競合製品(モバイル向け同期DBやメッシュネットワーク機器など)と比べた際の差別化ポイントは何ですか
- A. モバイルアプリなどで簡単にメッシュネットワークで接続・データ同期ができる製品は他には見当たらず、特にLANだけでなくBLEやAWDL/Wi-Fi Awareまで利用できることが特徴。また対応プラットフォームや言語も豊富
Q. 既存のクラウド中心アーキテクチャ(APIサーバー + モバイルアプリ)とどのように共存させますか
- A. 既存のクラウドサーバーがある場合は、「モバイル側のみDittoを利用する」または「クラウドでもDittoのDBを利用し、それを他のクラウドに連携・同期させる」などの選択肢がある
Q. Dittoの動作イメージや価値を短時間で確認するにはどうすればよいですか(デモ / PoC / トライアル)
- A. 公式サイト(https://www.ditto.com/ )でイメージを掴み、ドキュメント(https://docs.ditto.live/ )を見たり、OSSデモアプリを確認する(https://www.ditto.com/demo-apps )。デモアプリはストア上にも公開されているためスマホにインストール可能
Q. 利用開始までの一般的なステップを教えてください(アカウント作成から本番運用まで)
- A. ドキュメント(https://docs.ditto.live/ )を読む。Ditto Portal(https://portal.ditto.live )でアカウントを作って無償で検証用アプリを作成してみる
■ 対応端末・開発環境
Q. どのような端末・OSで利用できますか
- A. iOS/ Android/ Windows/ macOS/ Linux。クロスプラットフォームで相互に接続・同期可能。ドキュメントを参照: https://docs.ditto.live/sdk/latest/compatibility/compatibility
Q. Webブラウザやデスクトップアプリから利用できますか
- A. WebブラウザはWebSocketのみとなる(LANやBLEでのP2Pメッシュに参加できない)ためインターネット接続時のみとなる。なお公開予定の新製品『Ditto Edge Server(ローカルサーバー版Ditto)』を利用するとHTTPエンドポイントとなれるためブラウザからリクエスト可能となる。デスクトップアプリはBLEやLANを基本使えるためP2Pメッシュに参加可能
Q. iOSとAndroidなど異なるOS間でも、同じデータをシームレスに同期できますか
- A. はい
Q. クロスプラットフォームフレームワークはサポートされていますか
- A. Flutter/ React Native/ .NETに対応。ドキュメントを参照: https://docs.ditto.live/sdk/latest/compatibility/compatibility
Q. 業務用ハンディターミナルやエッジデバイスでも利用できますか
- A. Raspberry Piには対応している。その他は動作確認が必須。スペックが低い端末では動かない可能性が高い
Q. オフライン対応が必要なブラウザアプリの場合、どのような構成になりますか
- A. ブラウザはLANやBLEに対応していないためP2Pメッシュに参加できない。公開予定の新製品『Ditto Edge Server(ローカルサーバー版Ditto)』を利用するとHTTPエンドポイントとなれるためブラウザからリクエスト可能となる
■ 通信・ネットワーク
Q. 通信距離はどの程度ですか
- A. LANの場合はLANの接続範囲。P2P Wi-Fi(AWDL/Wi-Fi Aware)は概ね10m程度。BLEは数十メートル。全て環境(障害物)次第。なおメッシュネットワークでデータを中継(バケツリレー)できるため距離内に全デバイスがある必要はない
Q. 通信速度やレイテンシはどの程度を想定すべきですか
- A. LANは一般的にかなり高速。P2P Wi-Fi(AWDL/ Wi-Fi Aware)も高速だが、BLEは帯域が狭いため画像などは厳しい。店舗注文データやテキストぐらいであればたとえBLEであってもリアルタイム通信が可能
Q. 端末同士はどのような手順で接続されますか
- A. SDKが自動発見・自動接続・自動再接続を担当するため開発者は意識不要。OSに備わっている通常のAPIを利用している
Q. マルチホップにより、直接電波が届かない場所までどのようにデータを届けるのですか
- A. Ditto SDKはローカルDBのためデータを蓄積する。つながった際に他の端末に同期する
Q. 一つのメッシュネットワークに、どの程度の台数まで端末を参加させられますか
- A. 現行バージョンは数十台をメイン想定としているが将来的に数千台規模まで拡大の予定がある
Q. メッシュネットワークはどのように維持・自己修復されますか
- A. Ditto SDKが自動でメッシュネットワークの構築と維持を行うため開発者は意識不要
Q. 誰でもメッシュに参加してデータを閲覧できてしまうわけではないのですか
- A. TLS1.3で通信は暗号化されている。また接続には証明書が必要なため外部からメッシュに参加したり通信の中身を見ることは不可。また証明書レベルでReadとWriteの権限を設定可能
Q. メッシュ内のグループはどのように分割・制御しますか
- A. 複数の方法が考えられる: DB単位で分割する方法(Database ID)、同期グループを分割する方法(Sync Group)、メッシュは分割せず同期ロジックを分割する方法(クエリを分ける)
Q. メッシュ内の端末の接続状況やトポロジーを可視化することはできますか
- A. APIでログを吐き出す方法、APIからの情報をView化するOSSライブラリ(https://github.com/getditto?q=debug+tools )、クラウド(Ditto Portal)の機能でブラウザで閲覧する方法(多少の遅延あり)など
Q. 接続が途切れたことや再接続したことを、アプリ側で検知できますか
- A. APIで取得可能(Presence: https://docs.ditto.live/sdk/latest/sync/using-mesh-presence )
Q. 通信を開始・終了するタイミングをアプリ側から制御できますか
- A. StartとStopはAPIで呼び出すものであり、タイミングは開発者がコントロール可能
Q. LAN、Bluetooth LE、P2P Wi-Fi 以外に利用できる通信方式はありますか
- A. Ditto SDKがサポートしているのはLAN、BLE、P2P Wi-Fi(AWDL/Wi-Fi Aware)、WebSocket(インターネット通信)
Q. Bluetoothのペアリング操作はユーザーに求める必要がありますか
- A. BLEでは手動のペアリングは不要で、SDKが接続を行います
Q. BLEとBluetooth Classicの違いと、Dittoが利用する方式を教えてください
- A. DittoはBLEを利用している
Q. イヤホンや他のBluetooth機器を接続している場合、通信に影響はありますか
- A. ほぼ無影響。多少の2.4GHz帯の混雑はあり得るが無視できる程度
Q. 壁や人体、機内の構造物・金属などの障害物がある環境でも、どの程度通信できますか
- A. 機内でも使われているためある程度の障害物でも接続は可能
Q. Dittoを入れると、LINEやGmail、YouTubeなど他社アプリもインターネットなしで利用できるようになるのですか
- A. Ditto SDK同士が接続・同期するだけであり、その他に影響することはない。P2P接続が付属したローカルDBと捉えてください
Q. 画像・音声・動画・PDFなど大きなファイルもDitto経由で同期できますか(推奨パターンや制限値はありますか)
- A. Bluetooth Low Energyがメインの環境であれば推奨しない。LANとP2P Wi-Fi(AWDL/Wi-Fi Aware)を通信経路とする場合は同期可能。通常の同期方法ではなく、Attachment APIの利用を推奨: https://docs.ditto.live/sdk/latest/crud/working-with-attachments
■ バッテリー消費・パフォーマンス
Q. Dittoを常時動作させた場合、端末のバッテリー消費はどの程度ですか
- A. Dittoの接続や同期には多くのCPU/メモリは利用しない。OSSデモアプリ(https://www.ditto.com/demo-apps )を起動するなどで検証可能。メッシュ内端末数が数十台を超えるケースや、データ量が多い場合は検証が必要
Q. バッテリー消費を抑えるために、通信頻度やスキャン間隔などを調整できますか
- A. 調整不可。そもそもポーリングをしておらず差分更新の仕組みとなっている
Q. 端末を長時間接続し続けると、バッテリーや端末寿命に影響はありますか
- A. ほぼ影響なし
Q. 省電力モードやバックグラウンド制限が有効な場合の挙動はどうなりますか
- A. 端末やOSに依存するため検証が必要
Q. CPU・メモリ・ネットワーク帯域のオーバーヘッドはどの程度ですか
- A. 影響は大きくないが心配であればOSSデモアプリ(https://www.ditto.com/demo-apps )を起動するなどで検証可能
■ データモデル・データ管理
Q. Dittoが提供する分散データベースの主なメリットは何ですか
- A. CRDT(https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type )のDBのため衝突が防げるため接続が断絶するケースに強い
Q. Dittoのデータモデルとクエリ言語(DQL)はどのようなものですか
- A. SQL-likeな構文。ドキュメントを参照: https://docs.ditto.live/dql/dql
Q. 中央のデータベース(マスター)は必要ですか
- A. 不要。クラウドに全データを吸い上げは可能
Q. 分散環境でどのようにデータの整合性を保っていますか
- A. DittoはCRDT(https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type )を採用
Q. オフライン時に同じレコードが複数端末で更新された場合、どのようにコンフリクトを解決しますか
- A. LWW(Last Write Wins: 後勝ち)
Q. データサイズやドキュメントサイズに制限はありますか
- A. 特になし。BLEの通信が遅いことなどには注意
Q. 端末ごとのストレージ使用量はどの程度を想定すべきですか(キャッシュ・ログ含む)
- A. 業務データ規模次第
Q. 古いデータの自動削除やアーカイブは可能ですか
- A. APIを利用した手動削除となる: https://docs.ditto.live/sdk/latest/crud/delete
Q. メッシュ内で異なる組織・店舗・フライトなどのデータを混在させないようにするにはどうすればよいですか
- A. 複数の方法が考えられる: DB単位で分割する方法(Database ID)、同期グループを分割する方法(Sync Group)、メッシュは分割せず同期ロジックを分割する方法(クエリを分ける)。DB単位で分割するとDittoクラウドでの閲覧が非効率になるためクラウドで閲覧する場合はそれ以外の方法が望ましい
Q. 他のアプリやプロセスが多く動作している端末で、Dittoのパフォーマンスが影響を受けることはありますか
- A. CPUやメモリに余裕がなければ影響はあり得る。検証が必要
■ クラウド・既存システム連携
Q. Ditto Cloud/ Ditto Serverとはどのようなクラウド・サーバー製品ですか
- A. 役割は、Ditto SDKの認証、同期デバイス一覧、デバイスとのデータの同期(双方向)、データの閲覧。無償版はDitto社がホストで、有償ではホスト先は選択可能(AWSとGCPが対応済でAzureも対応予定あり)
Q. 自社クラウド(オンプレミス / 独自インフラ)での運用は可能ですか
- A. はい。ただし契約時に保守体制をDitto社と調整する必要あり
Q. 端末とクラウド間の通信はどのようなプロトコルで行われますか
- A. WebSocketが基本。HTTPエンドポイントも用意されている
Q. 既存のバックエンドシステムやデータベースとはどのように連携しますか
- A. Kafka、Websocket、HTTP APIが利用可能。MongoDBとはコネクターと呼ばれる自動同期機能も存在している。アプリ内の既存のローカルDBとは手動で同期させるコードを書く必要がある
Q. クラウド側の障害やネットワーク断が発生した場合、アプリ側にはどのような影響がありますか
- A. Ditto SDKはローカルDBのためネットワーク切断中でも動作可能。またP2Pメッシュネットワーク(LAN、BLE、AWDL/Wi-Fi Aware)により近くの端末とはそのままデータ同期可能。インターネット接続が復旧すればDittoクラウドと自動同期される(Ditto以外のサーバーを利用している場合は手動で同期させる必要がある)
Q. クラウドに長期保存したデータと、端末ローカルのデータのライフサイクルはどのように設計しますか
- A. 端末の容量を考慮し、端末側は一定期間ごとに削除推奨。クラウドは長期保存が一般的
■ セキュリティ・コンプライアンス
Q. 端末間およびクラウドとの通信は暗号化されていますか(使用プロトコル・暗号方式)
- A. TLS1.3により暗号化
Q. デバイス上およびサーバー側のデータ保存は安全に行われますか(暗号化・アクセス制御など)
- A. 証明書レベルでReadとWriteの権限を細かく設定可能。通信は暗号化されているがデータは暗号化されていないため必要であれば開発者自身で暗号化する(Ditto SDKによる暗号化も将来対応の可能性はあり)
Q. 認証・認可はどのような仕組みですか
- A. 端末がDittoサーバーへ認証しに行くと、Dittoサーバーは開発者が保守するWebhookサーバーへアクセスし認可のペイロードを受け取り、それが端末側へ戻される。なお無償版はDitto社のWebサーバーを利用可能(全データReadとWriteが有効)。デフォルトの有効期限は7日間で、半分の時点から更新の通信を開始する。期限が切れた場合は再取得までは通信不可となる
Q. 接続を許可する端末・ユーザーをどのように制御しますか
- A. 本番環境ではユーザーの開発者が保守するWebサーバーにてOAuthの情報などをもとにユーザーごとにRead/Writeの権限を設定する
Q. データの保存場所(リージョン)を指定できますか。また、データ越境の制御は可能ですか
- A. 基本は米国となるため変更が必要であればDitto社へ問い合わせが必要
Q. ログやトレースに含まれる個人情報の取り扱いはどのように設計すればよいですか
- A. Ditto SDKは特に個人情報などを区別しないため開発者側で受け取ったログの扱いを工夫する
■ 運用・保守・監視
Q. 本番導入後に日常的に行う運用・保守作業にはどのようなものがありますか
- A. SDKのバージョンアップとそれに伴うAPI利用コードの変更など
Q. 利用中に想定される一般的なトラブルと、その原因・対策例を教えてください
- A. テスト中は通信が安定している環境で、少ないデータを少ない端末数で検証し、本番環境では途切れがちな通信環境で大きなデータ量を多くの端末数で同期させるなど。分散DBの切断や再接続などのケースを十分に考慮したテストが必要
Q. SDKのリリース頻度と、バージョンアップ時の互換性の考え方を教えてください
- A. セマンティックバージョニングを採用(例: 4.xと4.xは後方互換あり。4.xと5.xは注意が必要など)。リリースは月数回程度: https://docs.ditto.live/sdk/latest/release-notes/release-notes
Q. SDKバージョンのサポートポリシーはどうなっていますか
- A. 基本的には不具合修正パッチなどは最新バージョンに対してのみ行われる(一つ前のマイナーバージョンにパッチがリリースされるケースもある)
Q. iOS / Android などOSのアップデートがあった場合の影響を教えてください
- A. Ditto社にて可能な限り早い段階で新OSに対応した修正バージョンをリリースする
Q. ログの取得方法について教えてください
- A. APIでSDKログファイルを取得可能: https://docs.ditto.live/sdk/latest/deployment/logging
Q. 日本語でのドキュメント、サポート、トレーニング提供は可能ですか
- A. 米国企業のため基本は英語。一部相談可能
■ 利用・開発プロセス
Q. 評価・PoCから本番導入までの一般的なステップを教えてください
- A. ドキュメントに沿って検証用アプリ作成(https://docs.ditto.live/ )。一定のお試しは無償環境で可能。その後問い合わせ→契約を経て、Ditto社の設計レビューを受けながら開発を進める
Q. 導入時にトレーニングは必要ですか。また、トレーニングプログラムは提供されますか
- A. アプリでの分散DBは特殊な製品のため十分な学習や漏れのない検証が必要となるため、一般的にDitto社の支援が必要となるケースが多い
Q. 既存のモバイルアプリにDittoを組み込む場合の開発工数の目安はどの程度ですか
- A. データベース設計や、既存のDBとの同期や、リアルタイム同期をUIに更新するなどが必要なため数人月は想定すべき
Q. アプリ開発費がネックになっています。テンプレートアプリやパッケージを活用した導入パターンはありますか
- A. Ditto社の新製品のノーコードアプリビルダーがあり、新規のiOS/Androidアプリはコーディング無しでも開発可能(現在は数種類のテンプレートのみで今後追加予定)
Q. 評価版から有料版に移行する際、コードや設定の変更は必要ですか
- A. 認証まわり(端末側アプリ実装と、認可用Webhookサーバー)の変更は必要。また検証アプリでは十分な設計が行われていないケースがあるためそのまま本番利用はリスクが高いためDitto社に相談を推奨(接続断によるデータの不整合が考慮されているか、パフォーマンスが出る設計になっているかなど)
■ 費用・ライセンス
Q. 無料で試せる評価版や開発者向けプランはありますか
- A. 無償で一定規模まで検証可能。ドキュメント(https://docs.ditto.live/ )に沿って開発を進める。可用性・セキュリティなどは無償版では考慮されていない
Q. 有料版ではどのような機能やサポートが追加されますか
- A. SLAサポート、セキュリティ、Ditto社設計・コードレビュー(ボリューム次第で追加費用)、有償版のみの機能(Kafkaなど)へのアクセス、etc
Q. ライセンス形態はどのようになっていますか
- A. 端末数分の年間ライセンス(サブスク型)。クラウドサービスも利用する場合は追加費用
Q. 想定される規模感を教えてください
- A. 基本ベースは数千台〜を想定
Q. 長期契約や大量導入時のディスカウントはありますか
- A. Ditto社に相談してください
Discussion