GitHub PullRequestReviewCommentEvent at 2014-05-07 16:12:43
Repository: basho_docs
Actor: lucperkins
Payload: {"comment":{"url":"https://api.github.com/repos/basho/basho_docs/pulls/comments/12386294","id":12386294,"diff_hunk":"@@ -0,0 +1,71 @@\n+---\n+title: Building Applications with Riak\n+project: riak\n+version: 1.0.0+\n+document: guide\n+audience: beginner\n+keywords: [developers, applications]\n+---\n+\n+So you've decided to build an application using Riak as a data store. We think that this is a wise choice for a wide variety of use cases. But using Riak isn't always straightforward, especially if you're used to developing with RDBMSs like MySQL or Postgres or non-persistent key/value stores like Redis. \n+\n+In this guide, we'll walk you through a set of questions that you should ask about your use case before getting started. The answer to some of these questions could inform decisions about which Riak features you should use, what kind of replication and conflict resolution strategies you should employ, and perhaps even how parts of your application should be built.\n+\n+## What Kind of Data is Being Stored?\n+\n+This is an important initial question for two reasons:\n+\n+1. Not all data is a good fit for Riak. If your data isn't a good fit, we would advise seeking out a different storage system.\n+2. The kind of data you're storing should guide your decision about *how* to store and access your data in Riak and which Riak features would be helpful (and which harmful).\n+\n+#### Good Fits for Riak\n+\n+Riak tends to be an excellent choice if you're dealing with any of the following:\n+\n+* **Immutable data** --- While Riak provides several means of resolving conflicts between different replicas of objects, those processes can produce latency. Storing immutable data means avoiding those processes altogether.\n+* **Small objects** --- Riak was not built as a store for large objects, like video files or other large [BLOB](http://en.wikipedia.org/wiki/Binary_large_object)s. We built [RiakCS](http://basho.com/riak-cloud-storage/) for that. Riak is great, however, for JSON, [[log files|Log Data]], [[sensor data]], and filetypes that tend to run smaller than 1 MB, such as HTML files.\n+* **Independent objects** --- Objects that do not have interdependencies on other objects are a good fit for Riak's [[eventually consistent|Eventual Consistency]] nature.\n+* **Objects with \"natural\" keys** --- It is almost always advisable to build keys for objects out of timestamps, [[usernames|User Accounts]], or other [\"natural\" markers](https://speakerdeck.com/hectcastro/throw-some-keys-on-it-data-modeling-for-key-value-data-stores-by-example) that distinguish that an object from other objects. Data that can be modeled this way fits nicely with Riak because Riak emphasizes fast object lookup.","path":"source/languages/en/riak/dev/using/application-guide.md","position":28,"original_position":28,"commit_id":"eeadcc47b6d60f2d4a6248980c84f9984695dff3","original_commit_id":"eeadcc47b6d60f2d4a6248980c84f9984695dff3","user":{"login":"lucperkins","id":1523104,"avatar_url":"https://avatars.githubusercontent.com/u/1523104?","gravatar_id":"af481d7274821037b1a807995b4a6598","url":"https://api.github.com/users/lucperkins","html_url":"https://github.com/lucperkins","followers_url":"https://api.github.com/users/lucperkins/followers","following_url":"https://api.github.com/users/lucperkins/following{/other_user}","gists_url":"https://api.github.com/users/lucperkins/gists{/gist_id}","starred_url":"https://api.github.com/users/lucperkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lucperkins/subscriptions","organizations_url":"https://api.github.com/users/lucperkins/orgs","repos_url":"https://api.github.com/users/lucperkins/repos","events_url":"https://api.github.com/users/lucperkins/events{/privacy}","received_events_url":"https://api.github.com/users/lucperkins/received_events","type":"User","site_admin":false},"body":"@lukebakken I'm actually doing precisely that: https://github.com/basho/basho_docs/pull/1048/files","created_at":"2014-05-07T16:12:43Z","updated_at":"2014-05-07T16:12:43Z","html_url":"https://github.com/basho/basho_docs/pull/1049#discussion_r12386294","pull_request_url":"https://api.github.com/repos/basho/basho_docs/pulls/1049","_links":{"self":{"href":"https://api.github.com/repos/basho/basho_docs/pulls/comments/12386294"},"html":{"href":"https://github.com/basho/basho_docs/pull/1049#discussion_r12386294"},"pull_request":{"href":"https://api.github.com/repos/basho/basho_docs/pulls/1049"}}}}