Clojure and Messaging : Immutant 2

Immutant 2 is a customized version of the JBoss Application Server 7. It provides an integrated platform for webmessagingschedulingcachingdaemonstransactions, and more. It repackages AS7 with additional modules that support Clojure applications, similar to what the TorqueBox project does for Ruby applications.  It provides an API which leverages HornetQ, which is an implementation of JMS. JMS provides two primary destination types: queues and topics. Queues represent point-to-point destinations, and topics publish/subscribe.  If this is something you are interested in, it is worth examining because it provides messaging for non-trivial applications :




Clojure Example : Building an Online Community with Clojure, Datomic, Angular and Ansibile

I ran into this very nice article the other day that goes into the how of creating an online community. Besides using Clojure, it also uses Datomic as the database, Angular for building the front-end and Ansible and Vagrant for provisioning and deployment.  I just started using Vagrant on my desktop to provision a number of VirtualBox instances for some search engine work I am doing.  This article provides a nice level of depth to the  discussion of a number of technologies and shows more than a basic outline of the architecture.



More on Clojure and Storm, a Distributed, Real-Time Computation System

In yesterday’s post I brought up Storm. There is a nice presentation on Storm from Nathan Marz of Twitter.  He explains the workings of Storm, a distributed fault-tolerant and real-time computational system currently used by Twitter to keep statistics on user clicks for every URL and domain.


Note that that there are some examples of Storm topologies.



Here is some details on how Twitter was using Storm in 2011.

Recommended Reading : Clojure and Storm, a Distributed Real-Time Computation System

In looking at more Clojure stuff, I discovered, Storm. Interesting.  There is a nice article on how to build an activity feed system with Storm.  Storm is a distributed real-time computation system. Storm can be looked at a way of being for real-time what Hadoop is to batch computation.


From the Apache Incubator site you can see that Storm is a relatively new project with big aims.  An example of using Clojure and Storm offers more insight into Storm.

Storm02The article goes into good detail about how to build a real-time activity feed system that filters and aggregates the raw event data generation in an application