MoonWolfです。

> ...といったことを実装しつつありまして、(2)でエラーを検出した場合にどうし
> ようかと。該当する情報がないなら0件と通知すれば良いですし、データベース
> のアクセスに失敗した場合でも0件と返答できなくはありませんが...。

rescueしてExceptionをtupleに返せばいいのでは?

> webサーバが[ /result|error/, [ ... ] ]のような待ちかたをするとか、tuple
> が[ 'result', nil ]なら例外と判断するとか、方法は思い付くのですが、どち
> らもtupleを取り出した後で内容を判断することになり、例外になじんだ今となっ
> ては違和感があるのです。

取り出したtupleが例外だったら、取り出し側でraiseすればいいと思います。

  # webサーバプロセス
  key = "#{DRb.uri}:#{id}"
  ts.out(['find', key, arg])
  tuple = ts.in(['result', key, nil])
  result = tuple[2]
  raise result if result.is_a? Exception

  # 処理担当プロセス
  tuple = ts.in(['find', nil, nil])
  begin
    result = <find処理>
    ts.out(['result', tuple[1], result])
  rescue
    ts.out(['result', tuple[1], $!])
  end

咳> それから、最近またThe RWikiのdRubyTutを書き始めました。(気まぐれ)
咳> サンプルはdRuby2, Rinda2で書く予定です。Rindaは2.xで
咳> インターフェイスを変える予定です。

Rindaのインターフェースが変わることも考慮して、フレームワーク化してRinda
を直接触らないようにしたほうがいいかと思います。

-- 
MoonWolf <moonwolf / moonwolf.com>