diff --git a/src/Cap.Consistency/Infrastructure/ConsistencyMessage.cs b/src/Cap.Consistency/Infrastructure/ConsistencyMessage.cs
new file mode 100644
index 0000000..edd8d97
--- /dev/null
+++ b/src/Cap.Consistency/Infrastructure/ConsistencyMessage.cs
@@ -0,0 +1,51 @@
+using System;
+
+namespace Cap.Consistency.Infrastructure
+{
+ ///
+ /// The default implementation of which uses a string as a primary key.
+ ///
+ public class ConsistencyMessage : ConsistencyMessage
+ {
+ ///
+ /// Initializes a new instance of .
+ ///
+ ///
+ /// The Id property is initialized to from a new GUID string value.
+ ///
+ public ConsistencyMessage() {
+ Id = Guid.NewGuid().ToString();
+ SendTime = DateTime.Now;
+ UpdateTime = SendTime;
+ Status = MessageStatus.WaitForSend;
+ }
+ }
+
+ ///
+ /// ConsistencyMessage consume status
+ ///
+ public enum MessageStatus
+ {
+ Deleted = 0,
+ WaitForSend = 1,
+ RollbackSuccessed = 3,
+ RollbackFailed = 4
+ }
+
+ ///
+ /// Represents a message in the consistency system
+ ///
+ /// The type used for the primary key for the message.
+ public class ConsistencyMessage where TKey : IEquatable
+ {
+ public virtual TKey Id { get; set; }
+
+ public virtual DateTime SendTime { get; set; }
+
+ public string Payload { get; set; }
+
+ public MessageStatus Status { get; set; }
+
+ public virtual DateTime? UpdateTime { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Cap.Consistency/Infrastructure/DeliverMessage.cs b/src/Cap.Consistency/Infrastructure/DeliverMessage.cs
index 28ab90e..af4072e 100644
--- a/src/Cap.Consistency/Infrastructure/DeliverMessage.cs
+++ b/src/Cap.Consistency/Infrastructure/DeliverMessage.cs
@@ -16,6 +16,8 @@ namespace Cap.Consistency.Infrastructure
public byte[] Body { get; set; }
+
+ public string Value { get; set; }
}
@@ -27,6 +29,5 @@ namespace Cap.Consistency.Infrastructure
public long Offset { get; set; }
public string MessageId { get; set; }
-
}
}
diff --git a/src/Cap.Consistency/Infrastructure/IConsumerExcutorSelector.cs b/src/Cap.Consistency/Infrastructure/IConsumerExcutorSelector.cs
index 714a955..a8bf4bb 100644
--- a/src/Cap.Consistency/Infrastructure/IConsumerExcutorSelector.cs
+++ b/src/Cap.Consistency/Infrastructure/IConsumerExcutorSelector.cs
@@ -10,6 +10,6 @@ namespace Cap.Consistency.Infrastructure
{
IReadOnlyList SelectCandidates(TopicRouteContext context);
- ConsumerExecutorDescriptor SelectBestCandidate(TopicRouteContext context, IReadOnlyList executeDescriptor);
+ ConsumerExecutorDescriptor SelectBestCandidate(string key, IReadOnlyList executeDescriptor);
}
}