Cosmos IAVL as gRPC server

Hello, first sorry for my english.
I’m trying to implement a simple blockchain with tendermint using Java for my ABCI app to understand how it works
It seems that the best way to store the state of my app is using the IAVL store from the cosmos github repository that I can run as a gRPC server, I would like to know how can I use the IAVL server for multiple substore like in cosmos SDK modules ? is it possible ?
If I understood it correctly each module has its own sub merkle tree to store its state ?
I would like to implements this kind of mecanisme in my java test project, is it possible with the IAVL cosmos implementation running as a gRPC server ?