{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":555696910,"defaultBranch":"master","name":"pulsar-client-go","ownerLogin":"adrianiacobghiula","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2022-10-22T05:25:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2491756?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1666416304.5640059","currentOid":""},"activityList":{"items":[{"before":"49382929e11b6a612c977b22d4914a352bc3e6c6","after":"1ea39fec49780cd9c43d39b50a8f20b4923e4b65","ref":"refs/heads/master","pushedAt":"2024-03-03T06:33:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"adrianiacobghiula","name":null,"path":"/adrianiacobghiula","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2491756?s=80&v=4"},"commit":{"message":"allow override the Schema Creator by a reader","shortMessageHtmlLink":"allow override the Schema Creator by a reader"}},{"before":"88a8d85cf6d6a4f282a5b39a2140a7bb06ba0f3b","after":"49382929e11b6a612c977b22d4914a352bc3e6c6","ref":"refs/heads/master","pushedAt":"2024-03-01T10:20:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"adrianiacobghiula","name":null,"path":"/adrianiacobghiula","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2491756?s=80&v=4"},"commit":{"message":"allow override the Schema Creator by a consumer\na consumer might want to use different implementation of a Schema","shortMessageHtmlLink":"allow override the Schema Creator by a consumer"}},{"before":"60856f2d5d0aac888e7ade9b1cbe685a14b412c4","after":"88a8d85cf6d6a4f282a5b39a2140a7bb06ba0f3b","ref":"refs/heads/master","pushedAt":"2024-03-01T09:58:22.000Z","pushType":"push","commitsCount":343,"pusher":{"login":"adrianiacobghiula","name":null,"path":"/adrianiacobghiula","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2491756?s=80&v=4"},"commit":{"message":"[fix] Fix Infinite Loop in Reader's `HasNext` Function (#1182)\n\nFixes #1171\r\n\r\n### Motivation\r\n\r\nIf `getLastMessageId` continually fails, the reader.HasNext can get stuck in an infinite loop. Without any backoff, the reader would keep trying forever.\r\n\r\n### Modifications\r\n\r\n- Implemented a backoff policy for `getLastMessageID`.\r\n- If HasNext fails, it now returns false.\r\n\r\n#### Should the reader.HasNext returned `false` in case of failure?\r\n\r\nCurrently, the `HasNext` method doesn't report errors. However, failure is still possible. For instance, if `getLastMessageID` repeatedly fails and hits the retry limit. An option is to keep trying forever, but this would stall all user code. This isn't user-friendly, so I rejected this solution.\r\n\r\n#### Couldn't utilize the BackOffPolicy in the Reader Options\r\n\r\nThe `HasNext` retry mechanism requires to use of `IsMaxBackoffReached` for the backoff. But it isn't exposed in the `BackOffPolicy` interface. Introducing a new method to the `BackOffPolicy` would introduce breaking changes for the user backoff implementation. So, I choose not to implement it. Before we do it, we need to refine the BackOffPolicy.","shortMessageHtmlLink":"[fix] Fix Infinite Loop in Reader's HasNext Function (apache#1182)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAECtgynwA","startCursor":null,"endCursor":null}},"title":"Activity ยท adrianiacobghiula/pulsar-client-go"}