Other events I think we should handle are:
CorrelationSetWriteEvent - to be able to get notification of the correlation key/value associated with a process instance, which should then be stored as separate properties. We need to make sure BPEL processes with multiple correlation keys are catered for. This is also one of the specified search criteria above - if the value is numeric (for example), then it might be useful to specify a query based on a range of numbers. If this is problematic, then just handling equality for now is a good start.
ExpressionEvaluationFailedEvent and ExpressionEvaluationSuccessEvent - it may be useful to understand if an expression was evaluated, especially if it failed - during debugging.
PartnerLinkModificationEvent - for example if a dynamic endpoint reference is assigned to a partner link
ProcessMessageExchangeEvent - when a process instance receives a message - not sure about this one, depends whether it contains any interesting information. Usually a process will store an incoming message into a variable, so if we are recording the variable modification events, then this may do.
ScopeCompletionEvent, ScopeFaultEvent and ScopeStartEvent - from a debug perspective, I think these are required.
VariableModificationEvent - definitely required, and should probably make the variable name and value searchable?
Ok thanks Jeff - just added variable name and value to the list of data properties to be indexed.