diff --git a/pom.xml b/pom.xml
index f0f583b51e..6a3de0832c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-commons
- 2.5.0-SNAPSHOT
+ 2.5.0-state-detection-SNAPSHOT
Spring Data Core
diff --git a/src/main/asciidoc/is-new-state-detection.adoc b/src/main/asciidoc/is-new-state-detection.adoc
new file mode 100644
index 0000000000..a7430c4086
--- /dev/null
+++ b/src/main/asciidoc/is-new-state-detection.adoc
@@ -0,0 +1,30 @@
+[[is-new-state-detection]]
+= Entity State Detection Strategies
+
+The following table describes the strategies that Spring Data offers for detecting whether an entity is new:
+
+.Options for detection whether an entity is new in Spring Data
+[options = "autowidth",cols="1,1"]
+|===
+|Id-Property inspection (the default)
+|By default, Spring Data inspects the version property of the given entity.
+If the identifier property is `null` or `0` in case of primitive types, then the entity is assumed to be new.
+Otherwise, it is assumed to not be new.
+
+|Version-Property inspection
+|If a property annotated with `@Version` is present and `null`, or in case of a version property of primitive type `0` the entity is considered new.
+If the version property is present but has a different value, the entity is considered to not be new.
+If no version property is present Spring Data falls back to inspection of the Id-Property.
+
+|Implementing `Persistable`
+|If an entity implements `Persistable`, Spring Data delegates the new detection to the `isNew(…)` method of the entity.
+See the link:https://docs.spring.io/spring-data/data-commons/docs/current/api/index.html?org/springframework/data/domain/Persistable.html[Javadoc] for details.
+
+_Note: Properties of `Persistable` will get detected and persisted if you use `AccessType.PROPERTY`.
+To avoid that, use `@Transient`._
+
+|Implementing `EntityInformation`
+|You can customize the `EntityInformation` abstraction used in the repository base implementation by creating a subclass of the module specific repository factory and overriding the `getEntityInformation(…)` method.
+You then have to register the custom implementation of module specific repository factory as a Spring bean.
+Note that this should rarely be necessary.
+|===