This document summarizes the evolution of Neo4j's developer surface over time, including the introduction of Bolt drivers, user defined procedures, functions, and aggregation functions. It provides examples of how to write and call user defined procedures and functions in Java to extend Neo4j's capabilities for analytics and operations.