Service as a runtime package

I was thinking about splitting a set of xdata services, having the server and the main service in the main app, and loading packages for other services (to be able to update a service without having to update the whole program).
I made a few tests with an interface (ServiceContract) and its implementation (ServiceImplementation) into a package, but it seems it's not taken into acount by the main server.
Is there a clean way to achieve this or is it better to implement different apps (each one with its own xadata server ...), one for each service ?

It's possible.
When using Sparkle.App, there is already experimental functionality to load service packages dynamically. You should just put your packages inside a folder named sparkle_modules. That folder should be inside the folder containing your executable file.

I've studied the example and have done it a little bit differently. The server starts ok, but the service implementations are not always available. I know that some units could be ignored. Do you have an advice about compilation / project configuration of the package so the service declaration and implementation are always linked ?

I can only give some rough guesses.

Are you "using" the service implementation class, so it doesn't get removed by the linker?