Aww man! I had sent a response last night detailing a small example of this and it went POOF! apparently! RABBLE RABBLE!!!
Ok. Let's try this again. First off now I see that I misread Ade's question. Even though I mentioned this whole event sourcing-ish thing I was fixated on Mongo and didn't even realize what Ade was really asking. MAH BAD Ade. Sorry! This is all based on my Archaeologist app I had running during Alt.NET 2011 which can still be viewed here: http://archaeologist.heroku.com/ github: https://github.com/jcbozonier/Archaeologist Basic idea was it data mined twitter "in real time" and provided you with interesting visualizations. It served its purpose and won Ryan Riley and I the github sponsored AppHarbor contest so i consider it a success. :) There was a Rackspace Cloud service that ran every minute to update and precompute the data. Ruby service that aggregates and precomputes data collections. https://gist.github.com/1343209 JSON data service to provide a graph of different tweeters talking to one another https://gist.github.com/1342527 Using cached tweets to calculate a word cloud on demand https://gist.github.com/1342528 The main take away I think is that rather than waiting until my user viewed the web page, a lot of the data was computed as tweets happened. In this app I consider an event to be a tweet. Since Twitter can't push to my service my service needed to poll Twitter. The whole event sourcing thing can be most accurately described as... Normally we transform our data model based on our users' actions and then save that. In event sourcing, instead of doing that we record our users' actions and compute different data views of those events. If you need you can precompute those data views (something not unlike what we call caching) or you can just do it on demand when perf ain't no thang. I learned a lot of what I know about this stuff from Robert Ream for any of you with access to fist his mind hole. I very much recommend that. Feel free to ask more questions! Sorry for my confusion which stemmed from my lack of reading comprehension skills. :D -Bozo On Sun, Nov 6, 2011 at 9:07 AM, Matt Hornsby <[email protected]> wrote: > I, too, am interested in hearing more about how you are doing this > Justin. I've spent a lot of time looking into the whole eventual > consistency/CQRS thing, but I'm still not clear enough on how to work > towards this architecture. I'm also curious about how everyone is > using NoSql but moreso about how the authorization story looks. Is it > not a big deal to not be able to use the ASP.NET Membership > Providers? > > > On Nov 5, 6:37 pm, Justin Bozonier <[email protected]> wrote: > > So in Ruby the MongoDb driver just takes dictionaries. I'm not sure how > the > > C# side differs. > > > > When you say architecture, that confuses me because it sounds so BDUF. > Not > > ring snarky, that's just my knee jerk reaction. > > > > Sent from my iPhone > > > > On Nov 5, 2011, at 7:07 PM, Ade Miller <[email protected]> wrote: > > > > Hi Justin, > > > > Can you point me at an example of the MongoDB based architecture you > > describe. I’m busy putting together a project with Mongo for fun and > that’s > > probably the next thing to consider. Thus far I have a set of extensions > to > > the Mongo driver for C# that supports expressions and an implementation > of > > the MembershipProvider (Yuck). > > > > Cheers, > > > > Ade > > > > *From:* Justin Bozonier <[email protected]> > > *Sent:* Saturday, November 05, 2011 2:58 PM > > *To:* [email protected] > > *Subject:* Re: NoSql, what's your defaults these days? > > > > For prototypes I default to an in memory dictionary in Heroku. > > > > For more robustness I start to store that dictionary in Mongo. > > > > To scale beyond there my preference is to push data into Mongo and have > > separate concurrent services work to digest/aggregate/cache views on that > > data. I'm good with eventual consistency. > > > > Good question! Looking forward to more answers. > > > > Sent from my iPhone > > > > On Nov 5, 2011, at 2:45 PM, Adron Hall <[email protected]> wrote: > > > > Hello ALT.NETters > > > > So I've been messing around a lot more with NoSQL solutions, mainly from > > the perspective of getting prototypes faster with the increased > > flexibility. My defaults have been the following as of late: > > > > 1. If I'm stuck with SQL Server, (i.e. some Corporate IT Limitation or > > something) I've often tried to go the SisoDb Route, in other words, I try > > to design my architecture where it is not limited by the relational and > > column concerns of an RDBMS. This is, primarily being that I'm trying to > do > > more rapid prototyping of applications. > > 2. MongoDb is my other go to for a real NoSQL Solution. So far the reason > > has been because of the extensive support and what appears to be greater > > usage of the solutions available on the market. This doesn't in any way > > mean that MongoDb is the best solution, just the path with the least > > resistance. Getting a solution running with Ruby on Rails, .NET, or > > whatever is usually the stack that is utilizing the database is generally > > extremely easy - more so than setting up a SQL Server by an order of > > magnitude (at least from a time perspective). > > > > Another thing that I've found myself using for fast prototyping of an > > application, and for local server caching of data, is to use bin > deployable > > SQL CE. With .NET MVC it's crazy simple to get something out the door. If > > your dev environment is already setup one can usually get a CRUD app out > > the door in about a half hour of fiddling. <- Very nice. > > > > Some others I want to try out really soon are Riak, Neo4j, and Redis. The > > link posted looks really good for some comparisons too, pretty helpful > (the > > one Ben posted athttp:// > kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis > > ) > > > > My questions are... > > > > - What are other people using for prototyping applications? > > - What are other people using for reporting solutions? Like BI, etc? > > - What are other people using for high row/document/data or "big data" > > storage? ( > Terabytes of data, multiple millions of rows/documents > of > > data) > > - What solutions do you find the most flexible out of the options that > > are market these days? (such as HBase, Cassandra, Neo4j, Redis, Riak, > etc) > > > > Thanks! > > -- > > *Adron B Hall* > > > > *Tech*:http://compositecode.com > > *Transit*: http://transitsleuth.com > > *Twitter*:http://www.twitter.com/adron > > -- > > You received this message because you are subscribed to the Google Groups > > "Seattle area Alt.Net" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group athttp:// > groups.google.com/group/altnetseattle?hl=en. > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Seattle area Alt.Net" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group athttp:// > groups.google.com/group/altnetseattle?hl=en. > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Seattle area Alt.Net" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group athttp:// > groups.google.com/group/altnetseattle?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Seattle area Alt.Net" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/altnetseattle?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Seattle area Alt.Net" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/altnetseattle?hl=en.
