EIPinCPI – Polling Consumer

December 15, 2019 Bhalchandra Wadekar

This week, we’ll study a pattern known as Polling Consumer.

When do I use this pattern?

Polling Consumer is one of the most popular scenarios. A Polling Consumer is used when the consumer wants to control the time at which it wants to receive the message. A Polling Consumer may process all the messages at once at midnight to reduce the processing during daylight. A Polling Consumer may receive the next set of messages when the resources are available to process the next set of messages.

The most common example of polling consumer in middleware is the use of SFTP Sender Adapter. Files are polled in a given directory at the scheduled time.

In CPI, a polling consumer can be created for any adapter by use of Timer Start Event. Isn’t that cool!

Polling Consumer in CPI

SFTP Sender Adapter

The SFTP Sender Adapter in CPI enables connection to a remote system using SSH File Transfer Protocol. The adapter can be configured to fetch the files on a schedule. The Integration Flow that uses SFTP Sender Adapter gets the messages as per the schedule, thereby making the integration flow a Polling Consumer.

Integration Flow

SFTP

SFTP

In this demonstration, I’ll be fetching the files at midnight and simply logging the file contents.

This is the scheduler configuration of SFTP Sender Adapter:

SFTP%20Schedule

SFTP Schedule

The integration flow would stay dormant until midnight. At midnight, it will fetch all the files in the configured directory and log them.

Timer Start Event

Timer Start Event enables the integration flow to start on schedule. Until now, in EIPinCPI blog series, we have used Timer Start Event to start the integration flow immediately. Now, we’ll use the Timer Start Event to start the integration flow at midnight. The integration flow will fetch the customers using OData Receiver Adapter and log it.

Integration Flow

Timer%20Start%20Event

Timer Start Event

Similar to SFTP Polling Consumer above, this integration flow starts at midnight, fetches all the customers changes since yesterday and logs it.

As we can see here, the use of Timer Start Event enables any kind of scenario to be configured as a Polling Consumer.

Many other adapters have built-in features to use the Polling Consumer pattern including these:

Do you know any other adapters that support Polling Consumer pattern? Put them in the comments and I’ll add them in this list.

Conclusion

Polling Consumer is used when the consumer needs to control when it wants to receive the messages. The control is exercised using a schedule in most scenarios. However, resource-based control is also possible.

References/Further Readings

Hope this helps,
Bala

About the Author

Bhalchandra Wadekar

Bhalchandra Wadekar is an Integration Enthusiast who authored the Enterprise Integration Patterns in SAP Cloud Platform Integration (#EIPinCPI) series on SAP Blog Community. He is a fan of integration from API Management and Open Connectors to Message Based Integration and Data Integration.

More Content by Bhalchandra Wadekar
Previous Article
EIPinCPI – Transactional Client
EIPinCPI – Transactional Client

Next Article
EIPinCPI – Canonical Data Model
EIPinCPI – Canonical Data Model