Я внедряю приложение Rails, которое должно объединять результаты поиска из N независимых гетерогенных баз данных. Пример использования будет:
- Пользователь запрашивает "xpto"
- Запрос отправляется во все базы данных, зарегистрированные в системе
- Результаты преобразуются и объединяются в предопределенном формате
- Пользователь получает результаты
Приложению необходимо предоставить точку расширяемости для введения новых баз данных в систему. Здесь база данных может быть разной - плоский файл, база данных SQL, интерфейс REST для базы данных SQL и т. Д.
Если бы я работал в C # / Java, игнорируя проблемы со скоростью, я бы определил систему управления подключаемыми модулями, в которой каждый узел имел бы подключаемый модуль, который знал бы, как запрашивать и преобразовывать результаты узла. Новые хосты будут легко представлены путем определения нового плагина и настройки хоста в системе.
Я новичок в рельсах и ищу идеи, инструменты или шаблоны проектирования, которые могут помочь мне решить эту проблему.