<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="115918" data-post-id="115918">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Ankhers" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Ankhers
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The most compelling argument that I have heard is from <a href="https://www.youtube.com/watch?v=HaEPXoXVf2k" rel="noopener nofollow ugc">this video here</a>. Keep in mind I have not verified the information, but from a high level, it makes sense.</p>
<p>The argument being, SQL databases are optimized for memory. Which made sense for when they were made because memory was one of the most expensive pieces in a datacentre. Now memory is fairly cheap and CPU’s have become the most expensive pieces in a datacentre. NoSQL apparently optimizes for the CPU, which is why it generally has a fairly “dumb” querying mechanism.</p>
<p>But to me, that just seems to move the CPU usage from the database and into your application(s). So I don’t really know how it is a win.</p>
<p>I just wish I had a lot of time to dig deep into as many databases as I could in order to find what each of their use cases are. Unfortunately for me, I don’t have that time.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115918" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-115918" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115918"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="115919" data-post-id="115919">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="sarat1669" data-post="11" data-topic="20140">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/48/12582_2.png" class="avatar"> sarat1669:</div>
<blockquote>
<p>The data has multiple objects which can be owned by multiple owners (sub-systems).</p>
</blockquote>
</aside>
<p>N-to-M join tables.</p>
<aside class="quote no-group" data-username="sarat1669" data-post="11" data-topic="20140">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/48/12582_2.png" class="avatar"> sarat1669:</div>
<blockquote>
<p>A subsystem can replace the current object with a new object and assign its properties to different subsystems.</p>
</blockquote>
</aside>
<p>Unsure what that is modeling but a transaction can do multi-updates atomically.</p>
<aside class="quote no-group" data-username="sarat1669" data-post="11" data-topic="20140">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/48/12582_2.png" class="avatar"> sarat1669:</div>
<blockquote>
<p>The number of levels of the number of object is non-deterministic.</p>
</blockquote>
</aside>
<p>Join tables don’t care about depth.  ^.^</p>
<aside class="quote no-group" data-username="sarat1669" data-post="11" data-topic="20140">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/48/12582_2.png" class="avatar"> sarat1669:</div>
<blockquote>
<p>It depends on the runtime inputs. And we also do a lot of scheduling based on priority, cost optimisation, etc on top of these subsystems.</p>
</blockquote>
</aside>
<p>All of which are just normal queries or (materialized) views, which are bliss.  ^.^</p>
<aside class="quote no-group" data-username="sarat1669" data-post="11" data-topic="20140">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/48/12582_2.png" class="avatar"> sarat1669:</div>
<blockquote>
<p>We have borrowed some concepts from <a href="http://www.jpaulmorrison.com/fbp/" rel="noopener nofollow ugc">FBP</a> as well. I think modelling such kind of data in a traditional database isn’t a good idea.</p>
</blockquote>
</aside>
<p>This is all entirely not only supported by SQL but would be very well modeled as such, plus it helps to think how to model the data as it helps to get the code in better order as well.  More ‘types’ is always better.  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="Ankhers" data-post="12" data-topic="20140">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/ce7236/48.png" class="avatar"> Ankhers:</div>
<blockquote>
<p>The most compelling argument that I have heard is from <a href="https://www.youtube.com/watch?v=HaEPXoXVf2k" rel="noopener nofollow ugc">this video here</a>. Keep in mind I have not verified the information, but from a high level, it makes sense.</p>
<p>The argument being, SQL databases are optimized for memory. Which made sense for when they were made because memory was one of the most expensive pieces in a datacentre. Now memory is fairly cheap and CPU’s have become the most expensive pieces in a datacentre. NoSQL apparently optimizes for the CPU, which is why it generally has a fairly “dumb” querying mechanism.</p>
<p>But to me, that just seems to move the CPU usage from the database and into your application(s). So I don’t really know how it is a win.</p>
</blockquote>
</aside>
<p>I’ve heard that argument many times and also seen it ripped apart many times.  What you said at the end is precisely the most cited reason why it fails but that’s not even the biggest reason, which is the failure of typing and reliability around knowing the types.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115919" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-115919" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115919"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="115921" data-post-id="115921">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sarat1669" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/120/12582_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sarat1669
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Seems like I over-simplified the problem statement.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115921" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-115921" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115921"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="115923" data-post-id="115923">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="axelson" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/axelson/120/26351_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  axelson
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Scenic Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="sarat1669" data-post="7" data-topic="20140" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/48/12582_2.png" class="avatar"> sarat1669:</div>
<blockquote>
<p>I think Riak is more of a Key-Value store than a NoSQL database. Also it is eventually consistent and doesn’t support atomic updates.</p>
</blockquote>
</aside>
<p>Key-Value stores definitely fall under the category of NoSQL database. Perhaps you’re more specifically looking for a document-oriented database?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115923" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-115923" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115923"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="115938" data-post-id="115938">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="sarat1669" data-post="7" data-topic="20140" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sarat1669/48/12582_2.png" class="avatar"> sarat1669:</div>
<blockquote>
<p>I think Riak is more of a Key-Value store than a NoSQL database. Also it is eventually consistent and doesn’t support atomic updates.</p>
</blockquote>
</aside>
<p>No atomic updates and/or the lack of multi-update transactions would be a deal breaker for me as well. But outside of that – and as <a class="mention" href="/u/axelson" rel="nofollow">@axelson</a> said – K/V stores do fall under the NoSQL storage engines category.</p>
<p>You are not giving enough information in order for us to give good advice but as a rule of thumb: run away screaming from any “database” that has no strong typing and structure. Many people have tried it, many times, 99% of them ended up regretting it. The problems are well-documented – one of the most popular ones being that you get an initial burst of productivity… at the cost of maintenance of N versions of the data storage. Forever.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115938" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-115938" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115938"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="115956" data-post-id="115956">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Justin" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Justin/120/11330_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Justin
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It’s new! It’s cool! It’s what all the big guys are using!</p>
<p>NoSQL has use cases, but the installations far outnumber the use cases.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115956" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-115956" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115956"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="115957" data-post-id="115957">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mgwidmann" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mgwidmann/120/7249_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mgwidmann
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Perhaps a combination of <code>ecto</code> (without <code>ecto_sql</code>) in combination of <code>ex_aws_dynamo</code>? Just a suggestion, I haven’t personally tried this… It would require a bit of elbow grease but it could work.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115957" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-115957" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115957"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="115983" data-post-id="115983">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sienna" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sienna/120/14024_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sienna
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><strong>Alternative DB’s:</strong>  PosygreSQL, .RIAK, Realm DB, sqllite..</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115983" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-115983" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115983"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="115988" data-post-id="115988">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mythicalprogrammer" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mythicalprogrammer/120/10430_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mythicalprogrammer
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Postgresql can store json and jsonb like Mongodb.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="115988" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/alternatives-for-mongodb/20140/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-115988" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="115988"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>