Я использовал Clojure для некоторых довольно масштабных задач обработки данных (определенно гигабайт данных, как правило, множество больших массивов Java, хранящихся в различных конструкциях Clojure / ссылках STM).
Пока все умещается в доступной памяти, у вас не должно быть проблем с чрезвычайно большими объемами данных в одной ссылке. Сама ссылка применяет только небольшое фиксированное количество служебных данных STM, которое не зависит от размера того, что в нем содержится.
Приятным дополнительным бонусом является структурное совместное использование, которое встроено в стандартные структуры данных Clojure (карты, векторы и т. Д.) - вы можете взять полную копию структуры данных размером 10 ГБ, изменить один элемент в любом месте структуры и гарантируется, что для обеих структур данных вместе потребуется только доля больше 10 ГБ. Это очень полезно, особенно если вы считаете, что из-за STM / параллелизма у вас может быть несколько разных версий создаваемых данных одновременно.