Implement Pattern1, then periodically initiate calls to this function in select locations in its application where a delay in getting up to date data is not acceptable.
Note: In this pattern, this function must be called with the format that specifies a username argument. This pattern is designed to address the Use-case-02: End-User-MyStatus-MyLearningPath. Do not try to address the Use-case-01: Bulk Reporting with Pattern 2.
When using Pattern 2, the recovery process must be more robust. For recovery purposes, the caller should maintain the list of all TDR IDs that have been successfully processed. This is because multiple threads can make Get and Acknowledge calls, and any could fail for different reasons. In this case saving the last TDR ID for a less-than compare is not sufficient since thread A could successfully process TDR ID n+1 but thread B might have failed processing TDR ID n. Implement Pattern1. In addition, on an as-needed basis, the caller should sprinkle calls to this function in select locations in its application where a delay in getting up-to-date data is not acceptable.