Various parts of IDM will initiate LDAP changes (since multiple people can be logged into the IDM in multiple sessions) and those requests will need to be handed off to a task/job queue for processing. Some requests will also be dependent on each other (e.g. creating a group and then adding a given user to it) and there needs to be some workflow for handling errors as well. So if e.g. a user makes an edit to their preferences, then the IDM would validate the input and launch an LDAP job to effect the change and poll (up to a given timeout) for the successful or failed completion of the job.
We should evaluate existing schedulers (such as Celery or RQ) for their fitness to the task or otherwise write something custom.