title: Objectify list consistency in one entity
body: <p>I try to make a chat solution on App Engine for my android app. 
  A decided that instead of save all messages send to a topic in a separated entity like ChatMessage or something like this, I can save them in a List of Strings inside the Topic entity, like this: </p>
  
  <pre><code>@Entity
  public class Topic {
      @Id
      public String id;
      public List&lt;Long&gt; users = new ArrayList&lt;Long&gt;(2);
      public Long lastChangeTime;
      public LinkedList&lt;String&gt; messages = new LinkedList&lt;String&gt;();
  }
  </code></pre>
  
  <p>I came up with this because usually storing the topic id for every message is more data than the message string itself. :S
  What I don't know is, can this list strong consistent?<br> 
  This is how I add a new message to a Topic:</p>
  
  <pre><code>    // 2. get topic if it exists or create a new if not
      Topic topic = ofy().load().key(Key.create(Topic.class, topicId)).now();
      if (topic == null) {
          topic = new Topic(senderId, recipientId);
      }
  
      // 3. add message
      // this method adds the new string into the topic and update the 
      // last change time
      topic.addMessage(senderId, recipientId, send.message);
  
      // 4. save topic &amp; the new message
      ofy().save().entity(topic).now();
  </code></pre>
  
  <p>So if two users send a message at the same time, can it happens that the first user load the Topic, add his message, but in the same time the second user already loaded the topic (without the first user's message) and add his own new message. The first save the topic first. But can the second override the previous save of first user? Or what happens?</p>
  
  <p>If it can happen, how can i avoid this, bearing in mind that it's a high write rate entity so I need more write than 1/sec!</p>
  
  <p>Thanks, and best regards. </p>