I currently have a social gaming application using mongodb for its database. My question is, some suggestions if I want to create points and a badging system. The business logic of achievements / badges can become quite complex and very ad-hoc, so providing real-time badges would not seem effective. I suggest adding tracked actions to the queue somewhere, i.e. Amazon SQS, or simply using the user's activity feed as a queue, and also go through another workflow offline and simply process the consequences of each action / activity to find out if the threshold is set for any particular icon intersects.
My concern with this method is that it seems that icon requests can become quite intense, and I will also have to keep track of a very large number of activities. I can imagine achievements, ranging from things like the badge to those who in the last 4 weeks have scored 2nd place every week, or the badge to someone who has a friend in each of the 50 states ... and so on. .d.
Are there any more elegant or proven methods for this type of thing? Does it make sense to use a different database for achievements / activity feeds / leaders besides mongo, creating a mongo / other db hybrid environment?
Are options like Redis, Neo4J, or just the old SQL Server a good choice for a hybrid solution? I like Mongo so that it remains our main db, but it is curious to see if adding another db to the mix will help.
MonkeyBonkey
source share