Asynchronous BPEL process:
As the name suggests, Asynchronous BPEL process is something when initiated doesn’t reply back instantaneously.
It is not recommended to have asynchronous activities inside a synchronous process; however BPEL does not prevent this type of design.
A typical asynchronous BPEL involves
Client–> Receive Activity–> callBackClient(Invoke)
In case of an asynchronous call, the calling service is not dependent on the instant response from the provider. Less dependency thus more flexibility.
A special type of asynchronous service is the fire-and-forget service, a one-way service that never returns the asynchronous response. The client can immediately resume processing after making a call to this type of service and it does not have to anticipate a response in the future.
Synchronous BPEL process:
Synchronous processes are those which send their reply as the return message to the request instantaneously.
Synchronous interactions are very common when compared to asynchronous interaction patterns,
These require the service provider to be available when the request is made and to respond in a timely fashion.
A synchronous BPEL process uses a reply activity to respond to the client and an asynchronous service uses an invoke activity.
Client–> Receive Activity–> reply(Invoke)