Blogged by Niclas
What to say about the blog title? I guess it's the easiest to quote wikipedia: "the term bohemian, of french origin, was first used in the english language in the nineteenth century to describe the untraditional lifestyles of marginalized and impoverished artists, writers, musicans and actors in major european cities."
who I am?
Hi, my name is Niclas. I am a passionate software engineer working at company crunching huge amounts of data. I like new challenges and I am a certified internet and video games addict with an academic degree. I created this blog to share some of my thoughts with anyone who is interested.
I suppose most of this stuff will be internet and programming related, but we will see. Critics and other kinds of feedback will be greatly appreciated.
At HEROLABS we are doing sports / gaming apps and one inherent characteristic is, that you have load peaks around the games. I guess having load peaks is characteristic to for most gaming apps. If we take a look at your EMHERO2012 app we had most server traffic during the time the German national Football team played and almost no traffic in between.
What we wanted to do: Scale up our server capacity around periods of increased load and scale down the rest of the time. To achieve this, we chose the Amazon (AWS) cloud as deployment environment and an automated server deployment process. To shed some light on the result already, after some a hard work and steep learning curve, it works Okay here is how we did it: The first thing you need is a (metaphorically) unlimited amount of servers to rent, which should be available in a very short time (minutes). This is the job of the EC2 cloud in our scenario. That is the easy part, if you have a credit card.
Eventsourcing and CQRS with Clojure and MongoDBEventsourcing and CQRS with MongoDB
It was about a year ago when I stumbled about the concepts of event sourcing and command query responsibility segregation in a talk from Greg Young at QCon 2011 in London which I watched on InfoQ. This challenged some things I knew for sure regarding how to store and manage data.
Fortunately I joined HEROLABS in December 2011 and due to the fact that we where starting a brand new product, I was able to play around with these concepts. Additionally we chose MongoDB instead of a relational database in our first project as our main database management system. MongoDB is attributed to the NoSQL databases and is in the first place a big document (JSON/BSON) store. Additionally MongoDB offers facilities to index and search the collection of documents.
In conjunction with Clojure your are able to build a simple a quite powerful system to use event sourcing and CQRS.