{"action":"created","issue":{"url":"https://api.github.com/repos/symfony/symfony/issues/24411","repository_url":"https://api.github.com/repos/symfony/symfony","labels_url":"https://api.github.com/repos/symfony/symfony/issues/24411/labels{/name}","comments_url":"https://api.github.com/repos/symfony/symfony/issues/24411/comments","events_url":"https://api.github.com/repos/symfony/symfony/issues/24411/events","html_url":"https://github.com/symfony/symfony/pull/24411","id":262500152,"number":24411,"title":"[Message] Add a new Message component","user":{"login":"sroze","id":804625,"avatar_url":"https://avatars0.githubusercontent.com/u/804625?v=4","gravatar_id":"","url":"https://api.github.com/users/sroze","html_url":"https://github.com/sroze","followers_url":"https://api.github.com/users/sroze/followers","following_url":"https://api.github.com/users/sroze/following{/other_user}","gists_url":"https://api.github.com/users/sroze/gists{/gist_id}","starred_url":"https://api.github.com/users/sroze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sroze/subscriptions","organizations_url":"https://api.github.com/users/sroze/orgs","repos_url":"https://api.github.com/users/sroze/repos","events_url":"https://api.github.com/users/sroze/events{/privacy}","received_events_url":"https://api.github.com/users/sroze/received_events","type":"User","site_admin":false},"labels":[{"id":864126276,"url":"https://api.github.com/repos/symfony/symfony/labels/:snowflake:%20Feature%20Freeze","name":":snowflake: Feature Freeze","color":"F2F8FD","default":false},{"id":100378,"url":"https://api.github.com/repos/symfony/symfony/labels/Feature","name":"Feature","color":"02e10c","default":false},{"id":238909857,"url":"https://api.github.com/repos/symfony/symfony/labels/Status:%20Needs%20Work","name":"Status: Needs Work","color":"fad8c7","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/symfony/symfony/milestones/17","html_url":"https://github.com/symfony/symfony/milestone/17","labels_url":"https://api.github.com/repos/symfony/symfony/milestones/17/labels","id":2795131,"number":17,"title":"4.1","description":"https://symfony.com/roadmap?version=4.1#checker","creator":{"login":"nicolas-grekas","id":243674,"avatar_url":"https://avatars3.githubusercontent.com/u/243674?v=4","gravatar_id":"","url":"https://api.github.com/users/nicolas-grekas","html_url":"https://github.com/nicolas-grekas","followers_url":"https://api.github.com/users/nicolas-grekas/followers","following_url":"https://api.github.com/users/nicolas-grekas/following{/other_user}","gists_url":"https://api.github.com/users/nicolas-grekas/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolas-grekas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolas-grekas/subscriptions","organizations_url":"https://api.github.com/users/nicolas-grekas/orgs","repos_url":"https://api.github.com/users/nicolas-grekas/repos","events_url":"https://api.github.com/users/nicolas-grekas/events{/privacy}","received_events_url":"https://api.github.com/users/nicolas-grekas/received_events","type":"User","site_admin":false},"open_issues":136,"closed_issues":226,"state":"open","created_at":"2017-09-26T15:40:00Z","updated_at":"2018-03-20T08:41:27Z","due_on":"2018-05-31T07:00:00Z","closed_at":null},"comments":26,"created_at":"2017-10-03T16:39:23Z","updated_at":"2018-03-20T10:50:05Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/symfony/symfony/pulls/24411","html_url":"https://github.com/symfony/symfony/pull/24411","diff_url":"https://github.com/symfony/symfony/pull/24411.diff","patch_url":"https://github.com/symfony/symfony/pull/24411.patch"},"body":"| Q             | A\r\n| ------------- | ---\r\n| Branch?       | master\r\n| Bug fix?      | no\r\n| New feature?  | yes\r\n| BC breaks?    | no\r\n| Deprecations? | no\r\n| Tests pass?   | yes\r\n| Fixed tickets | #24326\r\n| License       | MIT\r\n| Doc PR        | symfony/symfony-docs#9437\r\n\r\nAs discussed in #24326. This PR is to help going forward with the discussions of having a Message component. \r\n\r\n# Resources\r\n\r\n| What | Where\r\n| --- | ---\r\n| Documentation | [In the PR](https://github.com/sroze/symfony/blob/add-message-component/src/Symfony/Component/Message/README.md)\r\n| Demo | [In `sroze/symfony-demo:message-component-demo`](https://github.com/sroze/symfony-demo/compare/message-component-demo)\r\n| [php-enqueue](https://github.com/php-enqueue/enqueue-dev) adapter | 1. Source: [In `sroze/enqueue-bridge`](https://github.com/sroze/enqueue-bridge) _(to be moved as `symfony/enqueue-bridge` I guess)_<br/>2. Demo: [In `sroze/symfony-demo:message-component-demo-with-enqueue`](https://github.com/sroze/symfony-demo/compare/message-component-demo...sroze:message-component-demo-with-enqueue)\r\n| [Swarrot](https://github.com/swarrot/swarrot) adapter | **Outdated adapter, waiting for stabilization** 1. Source: [In `sroze/swarrot-bridge`](https://github.com/sroze/swarrot-bridge) _(to be moved as `symfony/swarrot-bridge` I guess)_<br/>2. Demo: [In `sroze/symfony-demo:message-component-demo-with-swarrot`](https://github.com/sroze/symfony-demo/compare/message-component-demo...sroze:message-component-demo-with-swarrot)\r\n| [HTTP](https://github.com/sroze/message-http-adapter) adapter | **Outdated adapter, waiting for stabilization** 1. Source: [In `sroze/message-http-adapter`](https://github.com/sroze/message-http-adapter) <br/>2. Demo: [In `sroze/symfony-demo:message-component-demo-with-http-adapter`](https://github.com/sroze/symfony-demo/compare/message-component-demo...sroze:message-component-demo-with-http-adapter)\r\n| Web profiler integration | _In the pull-request_\r\n\r\n# Important points\r\n\r\n1. **Tests are not in the PR as they were written in PhpSpec & Behat.** If we decide to go forward with this approach, I'll translate them to PHPUnit.\r\n2. The aim is not to solve all the message/queuing problems but provide a good, simple and extensible message bus for developers.\r\n3. The communication with the actual AMQP/API brokers is down to the adapters for now. Not sure if we need to ship some by default or not 🤔 \r\n\r\nI guess that this would replace #23842 & #23315.\r\n\r\n# Changes from the proposals\r\n\r\nBased on the comments, a few changes have been made from the proposal.\r\n\r\n1. `MessageProducer`s have been renamed to `MessageSender`s\r\n2. `MessageConsumer`s have been renamed to `MessageReceiver`s\r\n  "},"comment":{"url":"https://api.github.com/repos/symfony/symfony/issues/comments/374553626","html_url":"https://github.com/symfony/symfony/pull/24411#issuecomment-374553626","issue_url":"https://api.github.com/repos/symfony/symfony/issues/24411","id":374553626,"user":{"login":"fabpot","id":47313,"avatar_url":"https://avatars3.githubusercontent.com/u/47313?v=4","gravatar_id":"","url":"https://api.github.com/users/fabpot","html_url":"https://github.com/fabpot","followers_url":"https://api.github.com/users/fabpot/followers","following_url":"https://api.github.com/users/fabpot/following{/other_user}","gists_url":"https://api.github.com/users/fabpot/gists{/gist_id}","starred_url":"https://api.github.com/users/fabpot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fabpot/subscriptions","organizations_url":"https://api.github.com/users/fabpot/orgs","repos_url":"https://api.github.com/users/fabpot/repos","events_url":"https://api.github.com/users/fabpot/events{/privacy}","received_events_url":"https://api.github.com/users/fabpot/received_events","type":"User","site_admin":false},"created_at":"2018-03-20T10:50:05Z","updated_at":"2018-03-20T10:50:05Z","author_association":"OWNER","body":"I propose to mark the component as experimental (see https://symfony.com/doc/current/contributing/code/experimental.html). That would allow us to have more time to test it in real conditions and make ajustments if needed.\r\n"}}
{"actor":{"display_login":"fabpot"}}