Most Java/Scala/Groovy project depend on a number of libraries, these libraries depend on other libraries, and so on for many levels deep. When creating the final project bundle we end up with a large number of external dependencies, which are often very hard to manage. That’s why UpdateImpact was created:…
Category: Cloud
Evaluating persistent, replicated message queues (updated w/ Kafka)
An updated and extended version of this post is available on SoftwareMill’s website. Below you can find the original content containing benchmarks from 2014. Update 17/07/2014: added Kafka benchmarks Update 20/03/2015: updated HornetQ replication description Update 4/05/2015: updated & extended version here Message queues are useful in a number of…
Benchmarking SQS
SQS, Simple Message Queue, is a message-queue-as-a-service offering from Amazon Web Services. It supports only a handful of messaging operations, far from the complexity of e.g. AMQP, but thanks to the easy to understand interfaces, and the as-a-service nature, it is very useful in a number of situations. But how…
Cluster-wide Java/Scala application deployments with Docker, Chef and Amazon OpsWorks
Docker is great for running isolated containers on a single node. However, most software systems run on multiple nodes, so in addition to Docker, we need some way of specifying which containers should run on which nodes. The specific problem that I want to solve is the following: I have…
Spray server in a Docker container
Docker is a pretty new, but very exciting project; with Docker you can create lightweight, self-sufficient containers with any application inside, and later run the containers on a variety of hosts. The same container can be run locally, as well as on production on a large scale. Moreover, running the…
Big data: when single node is better than clustered
There’s a lot of hype about “big data” and a general trend to try to apply Hadoop to almost every problem. However, sometimes it turns out that you can get much better results by writing an old-fashioned, but optimised, single-node version of your algorithm. The specific case I’m writing about…
ElasticMQ is now synced to Maven central
Thanks to Sonatype OSS repositories, ElasticMQ version 0.6.1 is now synced to central. All of the artifacts, except the standalone server (which depends on Ostrich, which isn’t available in the central repo) are synchronized. The procedure turned out to be pretty straighforward, and after a couple of days since the…
Implementing message replication in ElasticMQ with JGroups
ElasticMQ is a messaging server, with a Scala, Java, and an Amazon SQS-compatible interface. It supports guaranteed messaging by replicating the messages across a cluster of servers, and message persistence with journalling. Message replication is one of the core features of ElasticMQ. However if you look at the code, it’s…
ElasticMQ 0.2 – support for delayed queues and messages
Time to start blogging in 2012 :) I just released version 0.2 of ElasticMQ – a simple message queue system, which implements the Amazon SQS interface. Ideal if you want to test a service which uses SQS, or create a system which can leverage either the AWS infrastructure or run…
ElasticMQ 0.1 released!
ElasticMQ is a simple messaging system, exposing an SQS-compatible REST interface. It can run using an in-memory H2 database (ideal for testing), or backed by a normal database (e.g. MySQL). Using ElasticMQ can’t get much simpler, just include the dependency and: (the code below is Scala, but it is just…