{"action":"created","comment":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/comments/178317939","pull_request_review_id":108363311,"id":178317939,"diff_hunk":"@@ -678,6 +655,202 @@ boolean result = pollableSource.poll(received -> {\n \t\t}, new ParameterizedTypeReference<Map<String, Foo>>() {});\n ----\n \n+[[spring-cloud-stream-overview-error-handling]]\n+==== Error Handling\n+\n+Errors happen and Spring Cloud Stream provides several flexible mechanisms to handle them.\n+The error handling comes in two flavors\n+\n+\t- *system* - the error handling is delegated to the binder (re-queue, DLQ etc). Note that the techniques are dependent on binder implementation and\n+\tcapability of the underlying messaging middleware.\n+\n+\t- *application* - the error handling is done within the application (custom error handler)\n+\n+Spring Cloud Stream uses https://github.com/spring-projects/spring-retry[Spring Retry] library to facilitate successful message processing. See <<Retry Template>> for more details.\n+However, when all fails the exceptions thrown by the message handlers are propagated back to the binder.  At that point binder invokes custom error handler or communicates\n+the error back to the messaging system (re-queue, DLQ etc).","path":"spring-cloud-stream-core-docs/src/main/asciidoc/spring-cloud-stream-overview.adoc","position":47,"original_position":47,"commit_id":"d7c76c2293c64c6d9e8c78fc4191deea9fdcc21b","original_commit_id":"d7c76c2293c64c6d9e8c78fc4191deea9fdcc21b","user":{"login":"Buzzardo","id":5225162,"avatar_url":"https://avatars3.githubusercontent.com/u/5225162?v=4","gravatar_id":"","url":"https://api.github.com/users/Buzzardo","html_url":"https://github.com/Buzzardo","followers_url":"https://api.github.com/users/Buzzardo/followers","following_url":"https://api.github.com/users/Buzzardo/following{/other_user}","gists_url":"https://api.github.com/users/Buzzardo/gists{/gist_id}","starred_url":"https://api.github.com/users/Buzzardo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Buzzardo/subscriptions","organizations_url":"https://api.github.com/users/Buzzardo/orgs","repos_url":"https://api.github.com/users/Buzzardo/repos","events_url":"https://api.github.com/users/Buzzardo/events{/privacy}","received_events_url":"https://api.github.com/users/Buzzardo/received_events","type":"User","site_admin":false},"body":"Change \"(re-queue, DLQ etc).\" to \"(re-queue, DLQ, and others).\"","created_at":"2018-03-30T16:01:35Z","updated_at":"2018-03-30T16:50:41Z","html_url":"https://github.com/spring-cloud/spring-cloud-stream/pull/1334#discussion_r178317939","pull_request_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/comments/178317939"},"html":{"href":"https://github.com/spring-cloud/spring-cloud-stream/pull/1334#discussion_r178317939"},"pull_request":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334"}}},"pull_request":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334","id":178583653,"html_url":"https://github.com/spring-cloud/spring-cloud-stream/pull/1334","diff_url":"https://github.com/spring-cloud/spring-cloud-stream/pull/1334.diff","patch_url":"https://github.com/spring-cloud/spring-cloud-stream/pull/1334.patch","issue_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/1334","number":1334,"state":"open","locked":false,"title":"GH-1333 created Error Handling section","user":{"login":"olegz","id":172397,"avatar_url":"https://avatars0.githubusercontent.com/u/172397?v=4","gravatar_id":"","url":"https://api.github.com/users/olegz","html_url":"https://github.com/olegz","followers_url":"https://api.github.com/users/olegz/followers","following_url":"https://api.github.com/users/olegz/following{/other_user}","gists_url":"https://api.github.com/users/olegz/gists{/gist_id}","starred_url":"https://api.github.com/users/olegz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olegz/subscriptions","organizations_url":"https://api.github.com/users/olegz/orgs","repos_url":"https://api.github.com/users/olegz/repos","events_url":"https://api.github.com/users/olegz/events{/privacy}","received_events_url":"https://api.github.com/users/olegz/received_events","type":"User","site_admin":false},"body":"Resolves #1333","created_at":"2018-03-30T15:42:58Z","updated_at":"2018-03-30T16:50:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"414c4eac96c6ba34e9018b89c544df24901a2b8c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":280857670,"url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/labels/in%20pr","name":"in pr","color":"006b75","default":false}],"milestone":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/milestones/32","html_url":"https://github.com/spring-cloud/spring-cloud-stream/milestone/32","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/milestones/32/labels","id":2738780,"number":32,"title":"2.0.0.RELEASE","description":"","creator":{"login":"sabbyanandan","id":1562654,"avatar_url":"https://avatars1.githubusercontent.com/u/1562654?v=4","gravatar_id":"","url":"https://api.github.com/users/sabbyanandan","html_url":"https://github.com/sabbyanandan","followers_url":"https://api.github.com/users/sabbyanandan/followers","following_url":"https://api.github.com/users/sabbyanandan/following{/other_user}","gists_url":"https://api.github.com/users/sabbyanandan/gists{/gist_id}","starred_url":"https://api.github.com/users/sabbyanandan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sabbyanandan/subscriptions","organizations_url":"https://api.github.com/users/sabbyanandan/orgs","repos_url":"https://api.github.com/users/sabbyanandan/repos","events_url":"https://api.github.com/users/sabbyanandan/events{/privacy}","received_events_url":"https://api.github.com/users/sabbyanandan/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":13,"state":"open","created_at":"2017-09-01T15:16:16Z","updated_at":"2018-03-30T15:42:58Z","due_on":"2018-03-29T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334/commits","review_comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334/comments","review_comment_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/comments{/number}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/1334/comments","statuses_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/statuses/d7c76c2293c64c6d9e8c78fc4191deea9fdcc21b","head":{"label":"olegz:GH-1333","ref":"GH-1333","sha":"d7c76c2293c64c6d9e8c78fc4191deea9fdcc21b","user":{"login":"olegz","id":172397,"avatar_url":"https://avatars0.githubusercontent.com/u/172397?v=4","gravatar_id":"","url":"https://api.github.com/users/olegz","html_url":"https://github.com/olegz","followers_url":"https://api.github.com/users/olegz/followers","following_url":"https://api.github.com/users/olegz/following{/other_user}","gists_url":"https://api.github.com/users/olegz/gists{/gist_id}","starred_url":"https://api.github.com/users/olegz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olegz/subscriptions","organizations_url":"https://api.github.com/users/olegz/orgs","repos_url":"https://api.github.com/users/olegz/repos","events_url":"https://api.github.com/users/olegz/events{/privacy}","received_events_url":"https://api.github.com/users/olegz/received_events","type":"User","site_admin":false},"repo":{"id":87456271,"name":"spring-cloud-stream","full_name":"olegz/spring-cloud-stream","owner":{"login":"olegz","id":172397,"avatar_url":"https://avatars0.githubusercontent.com/u/172397?v=4","gravatar_id":"","url":"https://api.github.com/users/olegz","html_url":"https://github.com/olegz","followers_url":"https://api.github.com/users/olegz/followers","following_url":"https://api.github.com/users/olegz/following{/other_user}","gists_url":"https://api.github.com/users/olegz/gists{/gist_id}","starred_url":"https://api.github.com/users/olegz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olegz/subscriptions","organizations_url":"https://api.github.com/users/olegz/orgs","repos_url":"https://api.github.com/users/olegz/repos","events_url":"https://api.github.com/users/olegz/events{/privacy}","received_events_url":"https://api.github.com/users/olegz/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/olegz/spring-cloud-stream","description":"Event-Driven Microservices with Spring Integration","fork":true,"url":"https://api.github.com/repos/olegz/spring-cloud-stream","forks_url":"https://api.github.com/repos/olegz/spring-cloud-stream/forks","keys_url":"https://api.github.com/repos/olegz/spring-cloud-stream/keys{/key_id}","collaborators_url":"https://api.github.com/repos/olegz/spring-cloud-stream/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/olegz/spring-cloud-stream/teams","hooks_url":"https://api.github.com/repos/olegz/spring-cloud-stream/hooks","issue_events_url":"https://api.github.com/repos/olegz/spring-cloud-stream/issues/events{/number}","events_url":"https://api.github.com/repos/olegz/spring-cloud-stream/events","assignees_url":"https://api.github.com/repos/olegz/spring-cloud-stream/assignees{/user}","branches_url":"https://api.github.com/repos/olegz/spring-cloud-stream/branches{/branch}","tags_url":"https://api.github.com/repos/olegz/spring-cloud-stream/tags","blobs_url":"https://api.github.com/repos/olegz/spring-cloud-stream/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/olegz/spring-cloud-stream/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/olegz/spring-cloud-stream/git/refs{/sha}","trees_url":"https://api.github.com/repos/olegz/spring-cloud-stream/git/trees{/sha}","statuses_url":"https://api.github.com/repos/olegz/spring-cloud-stream/statuses/{sha}","languages_url":"https://api.github.com/repos/olegz/spring-cloud-stream/languages","stargazers_url":"https://api.github.com/repos/olegz/spring-cloud-stream/stargazers","contributors_url":"https://api.github.com/repos/olegz/spring-cloud-stream/contributors","subscribers_url":"https://api.github.com/repos/olegz/spring-cloud-stream/subscribers","subscription_url":"https://api.github.com/repos/olegz/spring-cloud-stream/subscription","commits_url":"https://api.github.com/repos/olegz/spring-cloud-stream/commits{/sha}","git_commits_url":"https://api.github.com/repos/olegz/spring-cloud-stream/git/commits{/sha}","comments_url":"https://api.github.com/repos/olegz/spring-cloud-stream/comments{/number}","issue_comment_url":"https://api.github.com/repos/olegz/spring-cloud-stream/issues/comments{/number}","contents_url":"https://api.github.com/repos/olegz/spring-cloud-stream/contents/{+path}","compare_url":"https://api.github.com/repos/olegz/spring-cloud-stream/compare/{base}...{head}","merges_url":"https://api.github.com/repos/olegz/spring-cloud-stream/merges","archive_url":"https://api.github.com/repos/olegz/spring-cloud-stream/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/olegz/spring-cloud-stream/downloads","issues_url":"https://api.github.com/repos/olegz/spring-cloud-stream/issues{/number}","pulls_url":"https://api.github.com/repos/olegz/spring-cloud-stream/pulls{/number}","milestones_url":"https://api.github.com/repos/olegz/spring-cloud-stream/milestones{/number}","notifications_url":"https://api.github.com/repos/olegz/spring-cloud-stream/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/olegz/spring-cloud-stream/labels{/name}","releases_url":"https://api.github.com/repos/olegz/spring-cloud-stream/releases{/id}","deployments_url":"https://api.github.com/repos/olegz/spring-cloud-stream/deployments","created_at":"2017-04-06T17:24:58Z","updated_at":"2018-03-27T15:47:46Z","pushed_at":"2018-03-30T15:42:26Z","git_url":"git://github.com/olegz/spring-cloud-stream.git","ssh_url":"git@github.com:olegz/spring-cloud-stream.git","clone_url":"https://github.com/olegz/spring-cloud-stream.git","svn_url":"https://github.com/olegz/spring-cloud-stream","homepage":"http://cloud.spring.io/spring-cloud-stream","size":5290,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"spring-cloud:master","ref":"master","sha":"4bb54418df21708fed0464d5b184ec0845d0964d","user":{"login":"spring-cloud","id":7815877,"avatar_url":"https://avatars0.githubusercontent.com/u/7815877?v=4","gravatar_id":"","url":"https://api.github.com/users/spring-cloud","html_url":"https://github.com/spring-cloud","followers_url":"https://api.github.com/users/spring-cloud/followers","following_url":"https://api.github.com/users/spring-cloud/following{/other_user}","gists_url":"https://api.github.com/users/spring-cloud/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-cloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-cloud/subscriptions","organizations_url":"https://api.github.com/users/spring-cloud/orgs","repos_url":"https://api.github.com/users/spring-cloud/repos","events_url":"https://api.github.com/users/spring-cloud/events{/privacy}","received_events_url":"https://api.github.com/users/spring-cloud/received_events","type":"Organization","site_admin":false},"repo":{"id":38764029,"name":"spring-cloud-stream","full_name":"spring-cloud/spring-cloud-stream","owner":{"login":"spring-cloud","id":7815877,"avatar_url":"https://avatars0.githubusercontent.com/u/7815877?v=4","gravatar_id":"","url":"https://api.github.com/users/spring-cloud","html_url":"https://github.com/spring-cloud","followers_url":"https://api.github.com/users/spring-cloud/followers","following_url":"https://api.github.com/users/spring-cloud/following{/other_user}","gists_url":"https://api.github.com/users/spring-cloud/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-cloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-cloud/subscriptions","organizations_url":"https://api.github.com/users/spring-cloud/orgs","repos_url":"https://api.github.com/users/spring-cloud/repos","events_url":"https://api.github.com/users/spring-cloud/events{/privacy}","received_events_url":"https://api.github.com/users/spring-cloud/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/spring-cloud/spring-cloud-stream","description":"Event-Driven Microservices with Spring Integration","fork":false,"url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream","forks_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/forks","keys_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/teams","hooks_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/hooks","issue_events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/events{/number}","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/events","assignees_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/assignees{/user}","branches_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/branches{/branch}","tags_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/tags","blobs_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/git/refs{/sha}","trees_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/statuses/{sha}","languages_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/languages","stargazers_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/stargazers","contributors_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/contributors","subscribers_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/subscribers","subscription_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/subscription","commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/commits{/sha}","git_commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/git/commits{/sha}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/comments{/number}","issue_comment_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/comments{/number}","contents_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/contents/{+path}","compare_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/merges","archive_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/downloads","issues_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues{/number}","pulls_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls{/number}","milestones_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/milestones{/number}","notifications_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/labels{/name}","releases_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/releases{/id}","deployments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/deployments","created_at":"2015-07-08T15:51:38Z","updated_at":"2018-03-30T15:26:35Z","pushed_at":"2018-03-30T15:42:59Z","git_url":"git://github.com/spring-cloud/spring-cloud-stream.git","ssh_url":"git@github.com:spring-cloud/spring-cloud-stream.git","clone_url":"https://github.com/spring-cloud/spring-cloud-stream.git","svn_url":"https://github.com/spring-cloud/spring-cloud-stream","homepage":"http://cloud.spring.io/spring-cloud-stream","size":5239,"stargazers_count":287,"watchers_count":287,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":188,"mirror_url":null,"archived":false,"open_issues_count":65,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":188,"open_issues":65,"watchers":287,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334"},"html":{"href":"https://github.com/spring-cloud/spring-cloud-stream/pull/1334"},"issue":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/1334"},"comments":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/issues/1334/comments"},"review_comments":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334/comments"},"review_comment":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/pulls/1334/commits"},"statuses":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-stream/statuses/d7c76c2293c64c6d9e8c78fc4191deea9fdcc21b"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Buzzardo"}}