I'm currently working on integrating an existing application with Exchange 2010 SP2 with the EWS Java API. I'm working on some design implementations and I find that I don't have the numbers to go one way or the other.
Basically, the current system schedules meetings. We're integrating it with Exchange to allow users to do scheduling and some management (not all, though) via Outlook. When a meeting is created in the current application and saved to its database, we also create an Appointment in Exchange. This is done via a single, dedicated account as that was the best fit for our system.
However, the design issue I'm seeing comes in from a scenario like this: User creates a meeting in the application. Appointment is created in Exchange and invitations are sent from the master account. The user later goes in to the application and makes a few changes, maybe the subject, body, time, or any other property we're saving to the Exchange Appointment. This requires us to update both the meeting in our application and the Appointment in Exchange.
The issue comes from the need to link the id for the meeting in the application to the id for the Appointment in Exchange (recurring meetings are not utilized, so that's not an issue). I'm torn between using extended properties for a few bits of info from the application (all Appointments will have the same set of extended properties definitions, but the id value will be unique) vs a database table to link the two ids and any other relevant information.
I'd certainly like to use the extended property as it won't require additional tables, etc on this end, but I've heard words of warning regarding the search for unindexed properties within Exchange. I can't accurately gauge the performance impact as I'm running this against a dev setup that is not very close to the actual server in terms of performance or the amount of data that Exchange needs to juggle.
I don't anticipate the update (or delete) option being utilized terribly often, but there will be potentially hundreds of meetings and even more responses going through this master account every day. We'll likely set up some cleanup operations to keep the inbox/calendar from overflowing, but I'm a bit concerned about the performance impact of searching by the value of an extended property. Can anyone shed some light on this?