Elixir

直接SQLでconfig指定以外のDBアクセスをする

config/*.exsに指定する接続先DB以外のDBも、普通にselectできる

    def a(), do: "select * from a.users" |> query
    def b(), do: "select * from b.users" |> query
    def query( sql ) when sql != "" do
        { :ok, result } = Ecto.Adapters.SQL.query( Livery.Repo, sql, [] )
        result
    end

なので、こんな感じでDB指定する関数化もできる

    def users( db ), do: "select * from #{ db }.users" |> query
    def query( sql ) when sql != "" do
        { :ok, result } = Ecto.Adapters.SQL.query( Livery.Repo, sql, [] )
        result
    end

これとマルチプロセスやFlowをうまく組み合わせると、簡単な並行DBアクセスくらいは作れそう