{"action":"created","issue":{"url":"https://api.github.com/repos/redding/qs/issues/70","labels_url":"https://api.github.com/repos/redding/qs/issues/70/labels{/name}","comments_url":"https://api.github.com/repos/redding/qs/issues/70/comments","events_url":"https://api.github.com/repos/redding/qs/issues/70/events","html_url":"https://github.com/redding/qs/pull/70","id":79514619,"number":70,"title":"Add payload type to jobs","user":{"login":"jcredding","id":85966,"avatar_url":"https://avatars.githubusercontent.com/u/85966?v=3","gravatar_id":"","url":"https://api.github.com/users/jcredding","html_url":"https://github.com/jcredding","followers_url":"https://api.github.com/users/jcredding/followers","following_url":"https://api.github.com/users/jcredding/following{/other_user}","gists_url":"https://api.github.com/users/jcredding/gists{/gist_id}","starred_url":"https://api.github.com/users/jcredding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcredding/subscriptions","organizations_url":"https://api.github.com/users/jcredding/orgs","repos_url":"https://api.github.com/users/jcredding/repos","events_url":"https://api.github.com/users/jcredding/events{/privacy}","received_events_url":"https://api.github.com/users/jcredding/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-22T16:19:14Z","updated_at":"2015-05-26T16:28:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/redding/qs/pulls/70","html_url":"https://github.com/redding/qs/pull/70","diff_url":"https://github.com/redding/qs/pull/70.diff","patch_url":"https://github.com/redding/qs/pull/70.patch"},"body":"This updates jobs to know a payload type. This is setup for\r\nsupporting events in the system. Specifically, this ensures that\r\nthere won't be any collisions when routing jobs and events. With\r\nthe previous setup, it would be possible to craft a job/event\r\ncombo such that they resulted having the same job name. This would\r\ncause them to not be routed correctly.\r\n\r\nThis fixes the problem by providing a payload type. Jobs will set\r\nthis to \"job\" and events will set it to \"event\". When routing the\r\npayload type will be prefixed to the name. This ensures that no\r\nmatter what, jobs/events will be routed separately and not collide.\r\n\r\nTo support this, the `Queue` must also build the prefixed job name\r\nfor its routes when they are configured.\r\n\r\n@kellyredding - Ready for review. There's a slowdown with doing this change, which is expected. We are adding more data to the payload (more to serialize/deserialize) and having to build a route name (concat a string) in addition to what was previously being done."},"comment":{"url":"https://api.github.com/repos/redding/qs/issues/comments/105592571","html_url":"https://github.com/redding/qs/pull/70#issuecomment-105592571","issue_url":"https://api.github.com/repos/redding/qs/issues/70","id":105592571,"user":{"login":"kellyredding","id":82110,"avatar_url":"https://avatars.githubusercontent.com/u/82110?v=3","gravatar_id":"","url":"https://api.github.com/users/kellyredding","html_url":"https://github.com/kellyredding","followers_url":"https://api.github.com/users/kellyredding/followers","following_url":"https://api.github.com/users/kellyredding/following{/other_user}","gists_url":"https://api.github.com/users/kellyredding/gists{/gist_id}","starred_url":"https://api.github.com/users/kellyredding/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kellyredding/subscriptions","organizations_url":"https://api.github.com/users/kellyredding/orgs","repos_url":"https://api.github.com/users/kellyredding/repos","events_url":"https://api.github.com/users/kellyredding/events{/privacy}","received_events_url":"https://api.github.com/users/kellyredding/received_events","type":"User","site_admin":false},"created_at":"2015-05-26T16:28:35Z","updated_at":"2015-05-26T16:28:35Z","body":"@jcredding we discussed some minor local var name changes to switch to `route_name`."}}