[id='creating-custom-cache-stores_{context}']
= Creating cache stores

Create custom cache stores with implementations of the `NonBlockingStore` API.

.Procedure

. Implement the appropriate {brandname} persistent SPIs.
. Annotate your store class with the `@ConfiguredBy` annotation if it has a custom configuration.
+
. Create a custom cache store configuration and builder if desired.
.. Extend `AbstractStoreConfiguration` and `AbstractStoreConfigurationBuilder`.
+
.. Optionally add the following annotations to your store Configuration class to ensure that your
custom configuration builder parses your cache store configuration from XML:
+
* `@ConfigurationFor`
* `@BuiltBy`
+
If you do not add these annotations, then `CustomStoreConfigurationBuilder` parses the common
store attributes defined in `AbstractStoreConfiguration` and any additional elements are ignored.
+
[NOTE]
====
If a configuration does not declare the
`@ConfigurationFor` annotation, a warning message is logged when {brandname}
initializes the cache.
====
