diff --git a/buffet/states/mock_state_change_queue_interface.h b/buffet/states/mock_state_change_queue_interface.h
index 54b2ccc..c984dbb 100644
--- a/buffet/states/mock_state_change_queue_interface.h
+++ b/buffet/states/mock_state_change_queue_interface.h
@@ -20,6 +20,8 @@
                bool(base::Time timestamp,
                     native_types::Object changed_properties));
   MOCK_METHOD0(GetAndClearRecordedStateChanges, std::vector<StateChange>());
+  MOCK_CONST_METHOD0(GetLastStateChangeId,
+                     StateChangeQueueInterface::UpdateID());
 };
 
 }  // namespace buffet
diff --git a/buffet/states/state_change_queue.cc b/buffet/states/state_change_queue.cc
index 74ac682..a6e1a72 100644
--- a/buffet/states/state_change_queue.cc
+++ b/buffet/states/state_change_queue.cc
@@ -42,6 +42,7 @@
                                element_old->second.end());
     state_changes_.erase(element_old);
   }
+  ++last_change_id_;
   return true;
 }
 
diff --git a/buffet/states/state_change_queue.h b/buffet/states/state_change_queue.h
index 9181ef4..83161fe 100644
--- a/buffet/states/state_change_queue.h
+++ b/buffet/states/state_change_queue.h
@@ -26,6 +26,7 @@
       base::Time timestamp,
       native_types::Object changed_properties) override;
   std::vector<StateChange> GetAndClearRecordedStateChanges() override;
+  UpdateID GetLastStateChangeId() const override { return last_change_id_; }
 
  private:
   // To make sure we do not call NotifyPropertiesUpdated() and
@@ -40,6 +41,10 @@
   // Accumulated list of device state change notifications.
   std::map<base::Time, native_types::Object> state_changes_;
 
+  // An ID of last state change update. Each NotifyPropertiesUpdated()
+  // invocation increments this value by 1.
+  UpdateID last_change_id_{0};
+
   DISALLOW_COPY_AND_ASSIGN(StateChangeQueue);
 };
 
diff --git a/buffet/states/state_change_queue_interface.h b/buffet/states/state_change_queue_interface.h
index 44e0f79..7c67829 100644
--- a/buffet/states/state_change_queue_interface.h
+++ b/buffet/states/state_change_queue_interface.h
@@ -10,7 +10,7 @@
 #include <base/time/time.h>
 #include <chromeos/variant_dictionary.h>
 
-#include "commands/schema_utils.h"
+#include "buffet/commands/schema_utils.h"
 
 namespace buffet {
 
@@ -29,6 +29,8 @@
 // change notification events.
 class StateChangeQueueInterface {
  public:
+  using UpdateID = uint64_t;
+
   // Returns true if the state change notification queue is empty.
   virtual bool IsEmpty() const = 0;
 
@@ -40,9 +42,13 @@
   // Returns the recorded state changes since last time this method was called.
   virtual std::vector<StateChange> GetAndClearRecordedStateChanges() = 0;
 
+  // Returns an ID of last state change update. Each NotifyPropertiesUpdated()
+  // invocation increments this value by 1.
+  virtual UpdateID GetLastStateChangeId() const = 0;
+
  protected:
   // No one should attempt do destroy the queue through the interface.
-  ~StateChangeQueueInterface() {}
+  virtual ~StateChangeQueueInterface() {}
 };
 
 }  // namespace buffet
diff --git a/buffet/states/state_change_queue_unittest.cc b/buffet/states/state_change_queue_unittest.cc
index 68fadcc..1a30f97 100644
--- a/buffet/states/state_change_queue_unittest.cc
+++ b/buffet/states/state_change_queue_unittest.cc
@@ -26,6 +26,7 @@
 
 TEST_F(StateChangeQueueTest, Empty) {
   EXPECT_TRUE(queue_->IsEmpty());
+  EXPECT_EQ(0, queue_->GetLastStateChangeId());
   EXPECT_TRUE(queue_->GetAndClearRecordedStateChanges().empty());
 }
 
@@ -37,7 +38,9 @@
   ASSERT_TRUE(queue_->NotifyPropertiesUpdated(change.timestamp,
                                               change.changed_properties));
   EXPECT_FALSE(queue_->IsEmpty());
+  EXPECT_EQ(1, queue_->GetLastStateChangeId());
   auto changes = queue_->GetAndClearRecordedStateChanges();
+  EXPECT_EQ(1, queue_->GetLastStateChangeId());
   ASSERT_EQ(1, changes.size());
   EXPECT_EQ(change.timestamp, changes.front().timestamp);
   EXPECT_EQ(change.changed_properties, changes.front().changed_properties);
@@ -62,6 +65,7 @@
   };
   ASSERT_TRUE(queue_->NotifyPropertiesUpdated(change2.timestamp,
                                               change2.changed_properties));
+  EXPECT_EQ(2, queue_->GetLastStateChangeId());
   EXPECT_FALSE(queue_->IsEmpty());
   auto changes = queue_->GetAndClearRecordedStateChanges();
   ASSERT_EQ(2, changes.size());
@@ -94,6 +98,7 @@
       native_types::Object{{"prop.name1", unittests::make_int_prop_value(4)}}));
 
   auto changes = queue_->GetAndClearRecordedStateChanges();
+  EXPECT_EQ(4, queue_->GetLastStateChangeId());
   ASSERT_EQ(2, changes.size());
 
   native_types::Object expected1{
@@ -136,6 +141,7 @@
         {"prop.name11", unittests::make_int_prop_value(11)},
       }));
 
+  EXPECT_EQ(3, queue_->GetLastStateChangeId());
   auto changes = queue_->GetAndClearRecordedStateChanges();
   ASSERT_EQ(2, changes.size());
 
