Fixed documentation (to clarify that the domain
events need deduplicating).
@@ -110,14 +110,13 @@ in their own partition.
application_log.append('event2')
application_log.append('event3')
-Items can be assigned directly. The append() method firstly
-gets the next available position in the array, and then assigned
+Items can be assigned directly. The append() method just
+gets the next available position in the array, and then assigns
the item to that position in the array. Because there is a small
time duration between checking for the next position and using it,
another thread could jump in and use the position first. If that
happens, a ``ConcurrencyError`` will be raised by the BigArray class.
-In such a case, another attempt can be made by repeating the whole
-process.
+In such a case, another attempt can be made to append the item.
.. code:: python
@@ -194,13 +193,13 @@ big array.
The application log can be used in an entity persistence policy, and
can be assigned to before the domain event is written to the aggregate's
-own sequence, so that it isn't possible to have an event in the aggregate
-sequence that is not already in the application sequence. Events in the
-application sequence that aren't in the aggregate sequence should be
-ignored, so that the aggregate sequences remain normative. Commands
+own sequence, so that it isn't possible to store an event in the aggregate's
+sequence that is not already in the application log. Commands
that fail to write to the aggregate's sequence after the event has been
logged in the application's sequence should raise an exception, so
-that the command may be retried.
+that the command may be retried. Events in the
+application log that aren't in the aggregate sequence can be
+ignored.
If writing to aggregate sequence is successful, then it is possible
to push a notification about the event to a message queue. Failing
@@ -209,6 +208,9 @@ normally. Push notifications could also be generated by a different process,
that pulls from the application log, and pushes notifications for events
that have not already been sent.
+The notifications can be used to retrieve the domain events, and the
+domain events can be deduplicated.
+
Asynchronous update
-------------------
@@ -330,3 +332,7 @@ contain all the earlier notifications.
Todo: Pulling from remote notification log.
Todo: Publishing and subscribing to notification log.
+
+Todo: Following notification log and deduplicating the domain events.
+
+Todo: Sending deduplicated domain events to messaging infrastructure.
