Asynchronous communication between PolicyCenter and billing system

The billing integration in the PolicyCenter base configuration uses both synchronous and asynchronous communication.

Some communication must be synchronous. In some cases, PolicyCenter needs information in response to user actions. For example, PolicyCenter needs to get available payment plans from the billing system, whether it is BillingCenter or another system. PolicyCenter must call the external system synchronously to assure a responsive user interface.

In other cases, the application needs information from the other application but the user is not waiting for a response or the application does not need a response. For example, temporary integration issues must not prevent binding a policy transaction. Because of this, the integration uses asynchronous communication in non-time-critical cases. This makes policy and billing integration robust but non-blocking to the user interface. PolicyCenter implements asynchronous communication by using the system wide event and message system.

The billing system plugin creates an event message, which triggers Event Fired rules, which create a message. In another thread, a message transport sends the message to the billing system and waits for confirmation from the billing system that it received the message.

See also