﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Jim Sally commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Been a busy week... anyway, thanks for posting this Oren, as obviously I couldn't agree more.  And I'm definitely looking forward to the post on the 16th that describes how you would tackle this problem via NHibernate.
  
  
Here's to hoping that you spending some time writing about this subject will actually bring it closer to the forefront, much as I'd love to see it!
  
  
Take care...
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment14</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment14</guid><pubDate>Fri, 11 Sep 2009 18:51:09 GMT</pubDate></item><item><title>Ayende Rahien commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Steve,
  
I have a post about that that will show up in the 16th
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment13</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment13</guid><pubDate>Wed, 09 Sep 2009 11:01:28 GMT</pubDate></item><item><title>Steve Py commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Ah yes, Append-Only with NHibernate.. This is something I'm tinkering with but have been running into a few hurdles. I'm trying to avoid having to do stuff like Evicts. So far meaningless PKs are a must, but this raises issues on how to tie in locking &amp; ensure you aren't appending to an already appended object, and how to ensure cached references reflect the latest entities reliably. I'm looking forward to that post.
  
  
Building audit trails after the fact with NHibernate around a CRUD system is a really, really messy operation. (Been there, debugged that.)
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment12</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment12</guid><pubDate>Wed, 09 Sep 2009 04:16:22 GMT</pubDate></item><item><title>Neil Kerkin commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Append Only also allow different systems to collect information about the same entity. 
  
  
This is the approach taken by openEHR (openehr.org), which allows any number of systems to collect information about a person without fear of conflicts when consolidating records. Not a standard SQL Data Model though.
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment11</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment11</guid><pubDate>Tue, 08 Sep 2009 21:57:14 GMT</pubDate></item><item><title>Ayende Rahien commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Harry,
  
I'll have a post about it.
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment10</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment10</guid><pubDate>Tue, 08 Sep 2009 16:13:18 GMT</pubDate></item><item><title>Ayende Rahien commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Bertrand,
  
In the DB level, you can't really use constraints.
  
But something that would be easy to do is to have a separate reporting model (physical one) where you do updates.
  
You only read from it to show stuff.
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment9</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment9</guid><pubDate>Tue, 08 Sep 2009 14:02:12 GMT</pubDate></item><item><title>Bertrand Le Roy commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Immutable rows... I'm wondering what it would be like if such constraints could be modeled at the database level, and what kind of optimization could be applied to the database engine to favor last version reading for example, or efficient and transparent storage. Also wondering about whether the transaction log has aspects of a different implementation of something similar. Vague questions, I know, thinking out loud and way out of my area of expertise...
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment8</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment8</guid><pubDate>Tue, 08 Sep 2009 04:49:48 GMT</pubDate></item><item><title>Eyston commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Harry:
  
  
That Greg Young talk above talks about it some.  Udi Dahan has a talk that also addresses this:
  
  
[www.infoq.com/.../Making-Roles-Explicit-Udi-Dahan](http://www.infoq.com/presentations/Making-Roles-Explicit-Udi-Dahan)  
  
(I watched the NDC 2009 video, not sure if this is all the same stuff).
  
  
Anyways, the root of most of this is working in Domain Events.  Moving to events allows you to have multiple handlers with each (potentially) having their own tailor designed model (domain, reporting, logging, etc).
  
  
Udi Dahan is a good source on this topic: 
[www.udidahan.com/.../domain-events-salvation/](http://www.udidahan.com/2009/06/14/domain-events-salvation/)</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment7</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment7</guid><pubDate>Mon, 07 Sep 2009 04:50:50 GMT</pubDate></item><item><title>Harry commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Since you brought it up, Oren, can you shed some light from your experience how do you approach the 'Append Only' model? And, how do you use NHibernate to tackle that (if you use NHibernate at all)? You mentioned the reporting should be done differently, how should we do that without all the labors of ADO.NET / Stored Procedures /SQL ...
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment6</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment6</guid><pubDate>Sun, 06 Sep 2009 20:53:17 GMT</pubDate></item><item><title>Michael L Perry commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>I've been working in this area for a while. I call this technique "historic modeling". I've written a set of rules, a walkthrough, and a library in support of this idea.
  
  
[http://historicmodeling.com](http://historicmodeling.com)  
[http://correspondence.codeplex.com](http://correspondence.codeplex.com)  
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment5</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment5</guid><pubDate>Sun, 06 Sep 2009 17:35:40 GMT</pubDate></item><item><title>Eyston commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>Greg Young has a good talk about this:
  
  
[www.infoq.com/.../greg-young-unshackle-qcon08](http://www.infoq.com/presentations/greg-young-unshackle-qcon08)  
  
Its very interesting stuff.
  
  
Taking CQS to the architecture level is something I find very interesting but also daunting.  It would make code so much cleaner, but the level of infrastructure is rarely required for the simple things I do -- more than CRUD, less than DDD.
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment4</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment4</guid><pubDate>Sun, 06 Sep 2009 17:02:54 GMT</pubDate></item><item><title>Giorgio Sironi commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>It's a paradox that a record is "more" deleted by editing out all its fields than by deleting it in the application which use a isDeleted column.
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment3</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment3</guid><pubDate>Sun, 06 Sep 2009 15:21:04 GMT</pubDate></item><item><title>Mark Nijhof commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>How about only doing mutations? So you would still only do inserts but not with the whole information but only with what got changed.
  
  
-Mark
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment2</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment2</guid><pubDate>Sun, 06 Sep 2009 10:16:45 GMT</pubDate></item><item><title>Nima commented on Soft Deletes aren&amp;rsquo;t Append Only model</title><description>A great post as always :)
  
Some times using an append only approach can't be avoided specially if a financial solution is involved and each record in database means real money but as always the DB size and performance issues are my concerns in this kind of approach  . I'd like to know if there are any guidelines/best practices/advices on designing such kind of databases. 
  
As I realized Microsoft uses separate tables for processing instances and completed instances (in BizTalk for example) although I'm not sure if they are using apply only approach.
  
  
Thanks again
</description><link>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment1</link><guid>http://ayende.com/4179/soft-deletes-aren-t-append-only-model#comment1</guid><pubDate>Sun, 06 Sep 2009 10:14:52 GMT</pubDate></item></channel></rss>