Spring Data accelerates the development of Spring based applications, by simplifying access to virtually any type of data store and unifying different data access implementations under the same paradigm. While doing this, Spring Data demonstrates different flavors of “magic”. I’m going to demonstrate, which elements and mechanisms stand behind this magic behavior and which path one should go in order to implement a Spring Data support for a particular data storage from scratch. To illustrate this, I’ll show sample implementation of Spring Data repository for Jetbrains Xodus – a Java transactional schema-less embedded database used by JetBrains YouTrack and JetBrains Hub.