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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>m_bolt is intended to work with memgraph, and does.<br>
This is, part of the reason, I’ve decided to split the library between a bolt implementation and a neo4j driver.<br>
I guess it’ll make more sense when I release the code.</p>
<p>(I’d like to stress again that my current work in the field doesn’t come from any hard feelings with Florin or anyone else who has contributed to bolt_sips, nor that I think it’s bad.<br>
Historically, there was little if any documentation regarding the bolt protocol. Yet, Florin with some help from Dominique have laid out the groundwork I’m relying on. ).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="298063" data-batch-url="/posts/batch_likers">
                        2
                      </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/who-s-using-graph-databases-today/56172/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-298063" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="298063"
                     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="298517" data-post-id="298517">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the update! I’m not sure how much value I can bring, but I’ll gladly bring what value i can to help with a review.</p>
<p>Re: your comment on the transport code. Maybe this highlights my ignorance or a misunderstanding of what you’re describing, but the JS driver has three different APIs: one for streaming, one for reactive sessions, and one for Promise-based sessions. I’m wondering first if that’s at all related to the issue you’re describing, and second whether those implementations offer any insights for how to approach improvements. However, it seems (and I could be totally wrong) that the streaming/reactive APIs would require a Process-backed approach that might be incompatible with what you were aiming for?</p>
<p>Again, thanks for taking this on.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="298517" 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/who-s-using-graph-databases-today/56172/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-298517" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="298517"
                     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 #12"></div>
  </section>
</div>
    <div class="postbit" id="298605" data-post-id="298605">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If I remember correctly all drivers implement streaming atop of the pull n feature introduced with bolt 4.0.</p>
<p>The issue with the transport code is that until neo4j 5.0, the server would buffer small records and emit packets only when the buffer was filled. Then, when they rewrote the server code (with netty I believe) they ditched the buffering and started emitting packets for each record, regardless of the record size. This is a known issue that will affect all drivers, according to them, it’s not much of an issue in real life scenarios since records would typically be larger (details <a href="https://github.com/neo4j/neo4j/issues/13045" class="inline-onebox" rel="noopener nofollow ugc">Potential performance regression in neo4j 5.x with bolt, maybe linked to buffering · Issue #13045 · neo4j/neo4j · GitHub</a> ). When, writing the driver that means, unfortunately, that it’s pretty much impossible to write code that consumes records efficiently for every scenario (basically if you were to set active once for each packet, with small records, you’d do it in a very tight loop leading to really bad performance).</p>
<p>Regarding streaming, m_bolt does support the pull n feature, but it doesn’t concern itself further with it (this will be handled at the neo4_ex level). m_bolt being inspired by mint, there is a way to receive records (by the calling process), which means it’s possible -in theory - to process records as they come. The issue here is that records should only be considered final when they’re followed by a success message, meaning that implementers of higher level drivers using this feature will need to be careful. In any case those won’t fix the issue with large amounts of small records.</p>
<p>Edit : the numbers provided in the github issue aren’t meant to compare drivers performance.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="298605" 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/who-s-using-graph-databases-today/56172/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-298605" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="298605"
                     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="298607" data-post-id="298607">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you for such an informative reply! I thought perhaps the streaming could have been enabled by a novel implementation hiding underneath that addressed the packet/transport issue, but if the folks at Neo4j called it out as an intractable degradation, I trust their assessment (and yours, too ;-p).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="298607" 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/who-s-using-graph-databases-today/56172/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-298607" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="298607"
                     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="313587" data-post-id="313587">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello! I’ve been working on a fork of Bolt Sips for the past 3 months. You can find the project at:<br>
<a href="https://github.com/sagastume/boltx" rel="noopener nofollow ugc">https://github.com/sagastume/boltx</a><br>
It provides support for the latest versions of Neo4j and Bolt. Personally, I’ve been conducting tests with Neo4j Aura.</p>
<p>During this period, I made numerous changes to Bolt Sips, including refactoring PackStream, protocol, socket, and more. The idea behind these changes is to make the implementation as simple as possible, making it easy to adapt to future modifications.</p>
<p>Feel free to try it out and let me know if everything is working smoothly <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>
<p>Compatibility with Neo4j versions: 3.0.x/3.1.x/3.2.x/3.4.x/3.5.x/4.x/5.9 - 5.13.0<br>
Compatibility with Bolt versions: 1.0/2.0/3.0/4.x/5.0/5.1/5.2/5.3/5.4</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="313587" data-batch-url="/posts/batch_likers">
                        4
                      </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/who-s-using-graph-databases-today/56172/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-313587" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="313587"
                     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="313591" data-post-id="313591">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m using a graph database as an appliacation database (just a prototype for now).<br>
My requirements were that I do not need to setup a server and that I can do simple snapshots for undo-redo. afaik there is only one graph-db that is suitable for that: redisgraph (or since that is discontinued: <a href="https://www.falkordb.com" rel="noopener nofollow ugc">https://www.falkordb.com</a>)</p>
<p>I wrote a Elixir-falkordb-client (should also work with redisgraph) if anyone is intereseted I can open-source it.</p>
<p>(I also tried bolt-sips but for some reason it does not work with falkordb, though it should)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="313591" data-batch-url="/posts/batch_likers">
                        2
                      </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/who-s-using-graph-databases-today/56172/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-313591" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="313591"
                     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="326416" data-post-id="326416">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi <a class="mention" href="/u/sebb" rel="nofollow">@Sebb</a>, would love to check out Elixir-falkordb-client!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="326416" 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/who-s-using-graph-databases-today/56172/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-326416" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="326416"
                     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="326459" data-post-id="326459">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a href="https://github.com/georgfaust/falkordb_ex" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/georgfaust/falkordb_ex</a></p>
<p>The thing should work, but its surely not production ready.<br>
Let me know how it goes.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="326459" data-batch-url="/posts/batch_likers">
                        2
                      </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/who-s-using-graph-databases-today/56172/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-326459" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="326459"
                     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="351708" data-post-id="351708">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m contemplating kicking off a hobby project with ArangoDB as the main database.</p>
<p><a class="mention" href="/u/tomgrozev" rel="nofollow">@TomGrozev</a> is your driver still maintained? It has impressive amount of features <img src="https://forum.elixirforum.com/images/emoji/apple/+1.png?v=15" title=":+1:" class="emoji" alt=":+1:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="351708" 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/who-s-using-graph-databases-today/56172/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-351708" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="351708"
                     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 #19"></div>
  </section>
</div>
    <div class="postbit" id="351922" data-post-id="351922">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve added precompiled versions of kuzu_nif, so you can use KuzuDB without installing a Rust compiler on your computer. <a href="https://forum.elixirforum.com/t/attempt-at-adapting-kuzudbs-rust-crate-into-elixir-via-nif-any-tips-thoughts/66100/19" class="inline-onebox" rel="nofollow">Attempt at adapting KuzuDB's Rust crate into Elixir via NIF, any tips/thoughts? - #19 by bgoosman</a>. The advantage of KuzuDB is no server required. It’s all embedded.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="351922" data-batch-url="/posts/batch_likers">
                        4
                      </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/who-s-using-graph-databases-today/56172/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-351922" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="351922"
                     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>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/56172/load_more?page=3">Load more posts (2 remaining)</a>
</div></template></turbo-stream>