I have an external system which keeps synchronized with Salesforce. I have triggers in every object that send the inserted/updated/deleted records to my webservice, and every minute I send the modified records in the system to Salesforce.
Now I would like to store a picklist values in my system as well. Ideally I would like something similar to a trigger that runs when the picklist values are updated (add one option, remove or rename it) but I can't see how this could be possible.
The only way I can think of would be to fetch the values at intervals by using the metadata API, but I would rather initiate the connection from Salesforce when there is a change instead of doing so from my server at fixed time intervals.
Is there any way to accomplish this? I am using Java by the way.