Ruby on Rails no es compatible con las confirmaciones de dos fases, lo que puede ser necesario si la aplicación respaldada por la base de datos necesita garantizar consistencia inmediata Y debe usar dos o más esquemas de base de datos.
Para muchas aplicaciones web, me atrevo a aventurar que este no es un caso de uso común. Uno perfectamente puede soportar la coherencia eventual con dos o más bases de datos. O uno podría soportar la consistencia inmediata con un esquema de base de datos. El primer caso es un gran problema si tu aplicación tiene que admitir una cantidad mondo de transacciones (ten en cuenta el término técnico :). El último caso es más típico, y Rails lo hace bien.
Francamente, no me preocuparían por los límites para usar Ruby on Rails (o cualquier marco) hasta que alcance problemas reales de escalabilidad. Cree una asesina aplicación primero y preocúpese por la escalabilidad.
ACLARACIÓN: Estoy pensando en cosas que Rails tendría dificultades para soportar porque podría requerir un cambio fundamental en su arquitectura. Seré generoso e incluiré algunas cosas que forman parte del ecosistema de gemas/complementos, como la aplicación de claves foráneas o los servicios SOAP.
Por confirmaciones en dos fases, me refiero a intentar hacer dos confirmaciones a servidores físicamente distintos dentro de un contexto transaccional.
Caso de uso n.º 1 para una confirmación en dos fases: ha agrupado su base de datos para que tenga 2 o más servidores de bases de datos y su esquema se distribuya en ambos servidores. Es posible que desee comprometerse con ambos servidores, porque desea permitir que ActiveRecord piense en hacer un "mapa de clave externa" que atraviese los diferentes servidores.
Caso de uso n.º 2 para una confirmación en dos fases: está intentando implementar una solución de mensajería (lo siento, soy desarrollador J2EE por día). El productor del mensaje se compromete con el intermediario de mensajería (un servidor) y con la base de datos (un servidor diferente).
Suena subjetivo para mí. –