I love FIM Event Broker, and that’s not just because I work for the company that wrote it. No, it’s because it’s such an incredibly usable, powerful and downright quality product designed to make FIM scheduling and event-driven processing a simple reality, and I find I just can’t do without it any more. It’s kind of like going back to hand-washing dishes after having a dishwasher <<shudder>>.
And what’s more we’re practically giving it away – it costs less than an average day’s consulting fee!
One of the great things about Event Broker has always been the ease of ensuring that scripts and other external process run properly in step with your Run Profiles. In the picture below I’m implementing the totally awesome Replay MA which must be run in tandem with the FIM MA and a PowerShell script to generate the import file. As well I have my usual log archiving scripts running in just the right place and (as child operations) only running if the parent Run Profile succeeds. While you can of course do all this with a script, it’s a heck of a lot nicer and easier to use in Event Broker, and also makes it more likely that sneaky manual runs will get done here rather than directly in the Sync Service GUI, where they bypass all your scripts.
Of course the real point of Event Broker (evident in its name) is that it makes FIM “event driven”. So instead of running a whole sequence of tasks on a schedule just in case there’s something to do, we only run something when there is actually data to process. This means we can respond a lot faster. The Sync Service is not tied up with great long run sequences, a lot of which is unnecessary, and can respond quickly with appropriate run profile tasks as and when needed.
You do this through the “Check Operation”. Event Broker supports all sorts of methods for checking if something needs to happen, as shown in the picture below. Obviously we use the “Pending Exports” check a lot to only run exports when something is queued; and the “Database Query” is great for checking Delta tables. My newest use case is using PowerShell to check a web page which tells me if data has changed in the source system, which currently only supports full imports. So instead of running full imports all the time just in case I can check this web page every 30 seconds and run the full import only when needed. Neat!
Another often-overlooked feature of Event Broker is that it’s a web application, so available off the server. You can also grant reduced permissions – so you could allow an AD group access to run an operation and view logs, but not change anything. This could be useful if you wanted to grant access to manually trigger an operation to certain trusted people, without having to give them RDP access to the server, or teach them how to use a script.
Event Broker also comes with a Workflow Activity which can form part of your Portal Policy configuration and be used to trigger immediate operations.
One common use case is the need to force an immediate sync if someone is set to “Disabled” in the Portal. Another one I’ve recently implemented is part of enabling Exchange settings directly in Exchange using a custom PowerShell activity, but then following it up with an immediate Delta Import of the AD MA so I can show the correct Exchange values in the Portal.
Another neat feature is the Exclusion Group. Working with Event Broker means you have to change your way of thinking about Sync tasks. Instead of the monolithic scripts you define operations that run profiles against one or sometimes two MAs, on either a scheduled or event-drive basis. But you still don’t want to run multiple Sync operations at the same time, and the Exclusion Group takes care of that. Excluded operations won’t run at the same time, but may still be queued to run when there’s a gap.
It’s not just about Sync tasks – in this picture I’ve got an operation called “Update Reporting Tables” which is copying data out of the Metaverse tables for reporting purposes (spare me the lecture on “supported” – my reports rock) – but I’m only going to do that while no Sync jobs are running (see?).
So that’s a few of my favourite Event Broker features. By next week I may even have a few more – this product just keeps on being so useful. So what are you waiting for? Get your trial copy today!