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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="byu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/byu/120/32032_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  byu
                    <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>As discovered in the thread, I wasn’t quite looking at Ash PaperTrail itself … rather it was a different paper trail.</p>
<p>But since I went with carbonite, I didn’t have a need to immediately re-evaluate Ash PaperTrail.</p>
<p>I would definitely look at Ash Paper Trail again if I had a need in a new project. But also, at that future time, I would also take a look at Ash Events – per zach.</p>
<h3><a name="p-305645-longer-answer-1" class="anchor" href="#p-305645-longer-answer-1" aria-label="Heading link" rel="nofollow"></a>Longer answer</h3>
<p>And it would depend on the problem statement to solve. I could see different needs depending on the situation.</p>
<ul>
<li>Is “versioning the resource” a first class concept for the feature, and exposed to the user? For example, a user may want to rollback/forward different draft versions of an Article?
<ul>
<li>Ash Paper Trail w/ version may look promising here</li>
</ul>
</li>
<li>Or is it a non-functional issue like auditing?
<ul>
<li>I’ll want to re-evaluate the experience with carbonite at that time, see what worked or didn’t work.</li>
</ul>
</li>
<li>Or how much we may need, or not need, “Event Driven Architecture”…
<ul>
<li>“Event Driven Notification” and/or “Event-State Carried Transfer” needed?</li>
<li>Do we want to keep resource state using “Event Sourcing” (Ash Events or Commanded)?</li>
<li>Would there be a path to use Event Sourcing, translate that State Event to a Domain (or Integration) Event for publication to Domain or other “Bounded Contexts”?</li>
<li>Would the problem even be complicated enough to need all the extra work/complexity for DDD and these kinds of Tactical Patterns?</li>
</ul>
</li>
</ul>
<h3><a name="p-305645-summary-2" class="anchor" href="#p-305645-summary-2" aria-label="Heading link" rel="nofollow"></a>Summary</h3>
<p>But sorry <img src="https://forum.elixirforum.com/images/emoji/apple/frowning.png?v=15" title=":frowning:" class="emoji" alt=":frowning:" loading="lazy" width="20" height="20"> , <a class="mention" href="/u/terris" rel="nofollow">@terris</a> , I don’t have any thoughts on Ash PaperTrail for you at this moment-- maybe in the future.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="305645" 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/papertrail-vs-carbonite-vs-others/58578/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-305645" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="305645"
                     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="363662" data-post-id="363662">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Is <code>ash_events</code> production ready?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="363662" 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/papertrail-vs-carbonite-vs-others/58578/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-363662" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="363662"
                     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="363665" data-post-id="363665">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>News coming soon on that front <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> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="363665" data-batch-url="/posts/batch_likers">
                        6
                      </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/papertrail-vs-carbonite-vs-others/58578/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-363665" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="363665"
                     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="364387" data-post-id="364387">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote quote-modified" data-post="1" data-topic="70777">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/48/31980_2.png" class="avatar">
    <div class="quote-title__text-content">
      <a href="https://forum.elixirforum.com/t/ashevents-event-sourcing-made-simple-for-ash/70777" rel="nofollow">AshEvents: Event Sourcing Made Simple For Ash</a> <a class="badge-category__wrapper " href="/c/news/news-updates/160" rel="nofollow"><span data-category-id="160" style="--category-badge-color: #d2407f; --category-badge-text-color: #FFFFFF; --parent-category-badge-color: #d2407f;" data-parent-category-id="158" data-drop-close="true" class="badge-category --style-square --has-parent"><span class="badge-category__name">News &amp; Updates</span></span></a>
    </div>
  </div>
  <blockquote>
    Hey folks! 
<a name="p-364378-ashevents-release-1" class="anchor" href="#p-364378-ashevents-release-1" aria-label="Heading link" rel="nofollow"></a>AshEvents Release
We’ve just released the first version of AshEvents, an Event Sourcing tool for Ash Framework apps. 
Check out the blog post for the announcement! Thanks to <a class="mention" href="/u/torkan" rel="nofollow">@Torkan</a> for building this package and for writing a guest post for the Alembic blog to share! 
<a href="https://alembic.com.au/blog/ashevents" class="inline-onebox-loading" rel="noopener nofollow ugc">https://alembic.com.au/blog/ashevents</a> <img width="20" height="20" src="https://forum.elixirforum.com/images/emoji/apple/tada.png?v=15" title="tada" alt="tada" class="emoji"> 
[Logo]
  </blockquote>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="364387" 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/papertrail-vs-carbonite-vs-others/58578/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-364387" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="364387"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-solved cat-solved" title="Marked as solution"></div>
  </section>
</div>
    <div class="postbit" id="365086" data-post-id="365086">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="byu" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/byu/120/32032_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  byu
                    <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>I like the conversation in the AshEvents thread.</p>
<p>As a followup, I realized that we ended up with “Persistence” level events that exposed our RDBMS tables, which lead to CRUDy events and the friction of interpreting events (and coupling) across the services.  For example, consuming service needed to understand the values of different columns, combined, to interpret what “Business Event just happened”… More literature/info from <span class="mention">@codeopinion</span> youtube channel about Persistence vs Business level concepts.</p>
<p>Although the “persistence level events” was identified as a CON in the original message, I don’t think it was truly understood until after we had real-world experience. And that while the auditing/papertrail of changes was a primary concern, even then, trying to interpret what changing data in row columns to understand the WHY of the change was more difficult-- had to really understand the CODE at the time of the table-row update while seeing WHAT data changed…  But in Event Sourcing, the WHY is plain and simply described as the Business Fact/Event.</p>
<p>As since, I have learned much more about CQRS/ES, and would now have a shifted mindset towards really understanding a <em>COMPLEX</em> business domain’s <em>behavior</em>, to use the language of the business, and represented the business’ behavior with factual “Business Level Events” (to then tie in EventSourcing, Event Storming, EventModeling)…</p>
<p>Including techniques such as Domain Events, kept inside the service boundary; Integration Events (translated from Domain Events) are part of the service contract across service boundaries.</p>
<p>For future projects, assuming the mindshift change in tackling complex domains, and to execute a CQRS/ES oriented solution… The current evaluation would now be between Commanded or AshEvents…</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="365086" 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/papertrail-vs-carbonite-vs-others/58578/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-365086" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="365086"
                     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>