Actualmente estamos escribiendo una aplicación para la que TI ya ha comprado hardware. Su enfoque era comprar un gran hardware sobre el que implementaríamos. Para agregar más procesamiento, planean agregar servidores adicionales con software idéntico. Para acomodar este diseño, estamos usando Terracotta para proporcionar la capacidad de ejecutar varias JVM como si fuera una gran. Independientemente de si este es un camino inteligente (que todavía no estoy convencido), esta es la situación con la que estoy lidiando.¿Terracotta hace que JMS sea una capa innecesaria?
De todos modos, tenemos una parte de la aplicación que utiliza una cola de tipo productor/consumidor estándar. Con Terracotta, podemos crear una única cola que funcione con varias JVM. Esto es bastante astuto y funciona bien.
Pero ahora, estamos encontrando oportunidades adicionales para ejecutar procesos asincrónicos. Para que toda nuestra lógica de colas sea más consistente, estamos considerando usar JMS para abstraer la lógica común. Dado que no vamos a utilizar JMS como una cola remota (al menos en el futuro previsible), me pregunto si JMS solo está agregando complejidad innecesaria.
¿Alguna sugerencia o idea? ¿Deberíamos continuar creando colas como estructuras concurrentes, o tratarlas como objetos separados y potencialmente remotos?