This service is optimized to remain performant even with larger data volumes and therefore does not store retrieved nodes in the application server's working memory; instead, data is streamed directly from the database to the HTTP client. Therefore, we cannot use any built-in persistence framework such as JPA / Hibernate. By passing the retrieved subtree data directly from the database to the client, we are not limited by the amount of memory available on the server node; instead the size of the dataset is limited by the amount of disk space available to the db, which could be scaled vertically or horizontally.