title: How do you store the mutated state, event driven programming?
body: <p>I have the following case which I am scratching my head. I have an Aggregate lets call it Reservation and I have an Event. Some of the events will lead to the state of the aggregate to be mutated. Some of this state is functional and it naturaly belongs to the aggregate - like "calculated tax" for example. Some of the state I would say is more technical than functional, like if a message is sent to third party system lets call it "isMessageSentToASystem".  In the database I have two tables one for the aggregate one for the event. I see two optioons to preserve the state:</p>
  
  <p>1)I can keep only what has changed in a third table bound to the event. This way I will effectivly recieve a revision log. I don't think this fits well my application though. It will keep my aggregate immutable</p>
  
  <p>2) I will accept that my aggregate is mutable and I will write all functional important state into it ilke "calculatedTax". But here comes y question, what should I do with the technical state like "isMessageSenttoSystemA" somehow I have the feeling that this state does not belong to the aggregate itself but it is a side effect of the event. </p>
  
  <p>Can I create a third table and bind it to the event where I can write my technical state? How am I supposed to name such table? I realy have difficulties finding a correct name ? </p>
  
  <p>UPDATE: I am not sure if it becomes clear from the question.But I am mostly interested in how to model the data in the database. I use RDBMS.</p>
  
  <p>UPDATE2: I don't want to implement Event sourcing, and I think this is not a prerequisite in order to have Event driven architecture. </p>