{"action":"created","comment":{"url":"https://api.github.com/repos/mozilla/meao/pulls/comments/210926198","pull_request_review_id":147246512,"id":210926198,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDkyNjE5OA==","diff_hunk":"@@ -0,0 +1,78 @@\n+---\n+layout: post\n+title: \"Using Brotli compression to reduce CDN costs\"\n+author: Giorgos Logiotatidis\n+author_url: https://giorgos.sealabs.net\n+excerpt_separator: <!--more-->\n+---\n+\n+The Snippets Service allows Mozilla to communicate with Firefox users directly\n+by placing a snippet of text and an image on their homepage. Snippets share\n+exciting news from the Mozilla World, useful tips and tricks based on user\n+activity and sometimes jokes.\n+\n+To achieve personalized, activity based messaging in a privacy respecting and\n+efficient manner, the service creates a Bundle of Snippets per locale. The\n+complete Bundle is transferred to the client where a locally executed algorithm\n+decides which snippet to display. A carefully designed system with multiple\n+levels of caching takes care of the delivery. One layer of caching is CloudFront\n+CDN.\n+\n+\n+## The problem\n+\n+During the last months we observed a significant uptake of our CDN costs as the\n+Mozilla's Lifecycle Marketing Team was increasing the number of Snippets for the\n+English language from about 10 to 150.\n+\n+The Bundle file-size increased from about 200 KiB to more than 4MiB, which\n+translated to more bytes transferred using the CDN and thus higher bills. Given\n+that Firefox requests new bundles every 4 hours, this quickly became a issue","path":"_posts/2018-08-17-snippets-brotli.md","position":30,"original_position":30,"commit_id":"d76697c945904ed4ea81ed7a00995b89348c2b86","original_commit_id":"d76697c945904ed4ea81ed7a00995b89348c2b86","user":{"login":"metadave","id":58244,"node_id":"MDQ6VXNlcjU4MjQ0","avatar_url":"https://avatars3.githubusercontent.com/u/58244?v=4","gravatar_id":"","url":"https://api.github.com/users/metadave","html_url":"https://github.com/metadave","followers_url":"https://api.github.com/users/metadave/followers","following_url":"https://api.github.com/users/metadave/following{/other_user}","gists_url":"https://api.github.com/users/metadave/gists{/gist_id}","starred_url":"https://api.github.com/users/metadave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/metadave/subscriptions","organizations_url":"https://api.github.com/users/metadave/orgs","repos_url":"https://api.github.com/users/metadave/repos","events_url":"https://api.github.com/users/metadave/events{/privacy}","received_events_url":"https://api.github.com/users/metadave/received_events","type":"User","site_admin":false},"body":"a -> an","created_at":"2018-08-17T14:24:50Z","updated_at":"2018-08-17T14:27:57Z","html_url":"https://github.com/mozilla/meao/pull/86#discussion_r210926198","pull_request_url":"https://api.github.com/repos/mozilla/meao/pulls/86","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/mozilla/meao/pulls/comments/210926198"},"html":{"href":"https://github.com/mozilla/meao/pull/86#discussion_r210926198"},"pull_request":{"href":"https://api.github.com/repos/mozilla/meao/pulls/86"}}},"pull_request":{"url":"https://api.github.com/repos/mozilla/meao/pulls/86","id":209132353,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA5MTMyMzUz","html_url":"https://github.com/mozilla/meao/pull/86","diff_url":"https://github.com/mozilla/meao/pull/86.diff","patch_url":"https://github.com/mozilla/meao/pull/86.patch","issue_url":"https://api.github.com/repos/mozilla/meao/issues/86","number":86,"state":"open","locked":false,"title":"Add Snippets CDN Optimization Blog Post.","user":{"login":"glogiotatidis","id":584352,"node_id":"MDQ6VXNlcjU4NDM1Mg==","avatar_url":"https://avatars3.githubusercontent.com/u/584352?v=4","gravatar_id":"","url":"https://api.github.com/users/glogiotatidis","html_url":"https://github.com/glogiotatidis","followers_url":"https://api.github.com/users/glogiotatidis/followers","following_url":"https://api.github.com/users/glogiotatidis/following{/other_user}","gists_url":"https://api.github.com/users/glogiotatidis/gists{/gist_id}","starred_url":"https://api.github.com/users/glogiotatidis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glogiotatidis/subscriptions","organizations_url":"https://api.github.com/users/glogiotatidis/orgs","repos_url":"https://api.github.com/users/glogiotatidis/repos","events_url":"https://api.github.com/users/glogiotatidis/events{/privacy}","received_events_url":"https://api.github.com/users/glogiotatidis/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-08-17T12:25:48Z","updated_at":"2018-08-17T14:27:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0f9fd97db49b5f3a6c7662beae471a5178a0de6b","assignee":null,"assignees":[],"requested_reviewers":[{"login":"bensternthal","id":198507,"node_id":"MDQ6VXNlcjE5ODUwNw==","avatar_url":"https://avatars0.githubusercontent.com/u/198507?v=4","gravatar_id":"","url":"https://api.github.com/users/bensternthal","html_url":"https://github.com/bensternthal","followers_url":"https://api.github.com/users/bensternthal/followers","following_url":"https://api.github.com/users/bensternthal/following{/other_user}","gists_url":"https://api.github.com/users/bensternthal/gists{/gist_id}","starred_url":"https://api.github.com/users/bensternthal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bensternthal/subscriptions","organizations_url":"https://api.github.com/users/bensternthal/orgs","repos_url":"https://api.github.com/users/bensternthal/repos","events_url":"https://api.github.com/users/bensternthal/events{/privacy}","received_events_url":"https://api.github.com/users/bensternthal/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mozilla/meao/pulls/86/commits","review_comments_url":"https://api.github.com/repos/mozilla/meao/pulls/86/comments","review_comment_url":"https://api.github.com/repos/mozilla/meao/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla/meao/issues/86/comments","statuses_url":"https://api.github.com/repos/mozilla/meao/statuses/d76697c945904ed4ea81ed7a00995b89348c2b86","head":{"label":"glogiotatidis:snippets-2018-08","ref":"snippets-2018-08","sha":"d76697c945904ed4ea81ed7a00995b89348c2b86","user":{"login":"glogiotatidis","id":584352,"node_id":"MDQ6VXNlcjU4NDM1Mg==","avatar_url":"https://avatars3.githubusercontent.com/u/584352?v=4","gravatar_id":"","url":"https://api.github.com/users/glogiotatidis","html_url":"https://github.com/glogiotatidis","followers_url":"https://api.github.com/users/glogiotatidis/followers","following_url":"https://api.github.com/users/glogiotatidis/following{/other_user}","gists_url":"https://api.github.com/users/glogiotatidis/gists{/gist_id}","starred_url":"https://api.github.com/users/glogiotatidis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glogiotatidis/subscriptions","organizations_url":"https://api.github.com/users/glogiotatidis/orgs","repos_url":"https://api.github.com/users/glogiotatidis/repos","events_url":"https://api.github.com/users/glogiotatidis/events{/privacy}","received_events_url":"https://api.github.com/users/glogiotatidis/received_events","type":"User","site_admin":false},"repo":{"id":145099921,"node_id":"MDEwOlJlcG9zaXRvcnkxNDUwOTk5MjE=","name":"meao","full_name":"glogiotatidis/meao","owner":{"login":"glogiotatidis","id":584352,"node_id":"MDQ6VXNlcjU4NDM1Mg==","avatar_url":"https://avatars3.githubusercontent.com/u/584352?v=4","gravatar_id":"","url":"https://api.github.com/users/glogiotatidis","html_url":"https://github.com/glogiotatidis","followers_url":"https://api.github.com/users/glogiotatidis/followers","following_url":"https://api.github.com/users/glogiotatidis/following{/other_user}","gists_url":"https://api.github.com/users/glogiotatidis/gists{/gist_id}","starred_url":"https://api.github.com/users/glogiotatidis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glogiotatidis/subscriptions","organizations_url":"https://api.github.com/users/glogiotatidis/orgs","repos_url":"https://api.github.com/users/glogiotatidis/repos","events_url":"https://api.github.com/users/glogiotatidis/events{/privacy}","received_events_url":"https://api.github.com/users/glogiotatidis/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/glogiotatidis/meao","description":"The Marketing Engineering And Operations Team Blog","fork":true,"url":"https://api.github.com/repos/glogiotatidis/meao","forks_url":"https://api.github.com/repos/glogiotatidis/meao/forks","keys_url":"https://api.github.com/repos/glogiotatidis/meao/keys{/key_id}","collaborators_url":"https://api.github.com/repos/glogiotatidis/meao/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/glogiotatidis/meao/teams","hooks_url":"https://api.github.com/repos/glogiotatidis/meao/hooks","issue_events_url":"https://api.github.com/repos/glogiotatidis/meao/issues/events{/number}","events_url":"https://api.github.com/repos/glogiotatidis/meao/events","assignees_url":"https://api.github.com/repos/glogiotatidis/meao/assignees{/user}","branches_url":"https://api.github.com/repos/glogiotatidis/meao/branches{/branch}","tags_url":"https://api.github.com/repos/glogiotatidis/meao/tags","blobs_url":"https://api.github.com/repos/glogiotatidis/meao/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/glogiotatidis/meao/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/glogiotatidis/meao/git/refs{/sha}","trees_url":"https://api.github.com/repos/glogiotatidis/meao/git/trees{/sha}","statuses_url":"https://api.github.com/repos/glogiotatidis/meao/statuses/{sha}","languages_url":"https://api.github.com/repos/glogiotatidis/meao/languages","stargazers_url":"https://api.github.com/repos/glogiotatidis/meao/stargazers","contributors_url":"https://api.github.com/repos/glogiotatidis/meao/contributors","subscribers_url":"https://api.github.com/repos/glogiotatidis/meao/subscribers","subscription_url":"https://api.github.com/repos/glogiotatidis/meao/subscription","commits_url":"https://api.github.com/repos/glogiotatidis/meao/commits{/sha}","git_commits_url":"https://api.github.com/repos/glogiotatidis/meao/git/commits{/sha}","comments_url":"https://api.github.com/repos/glogiotatidis/meao/comments{/number}","issue_comment_url":"https://api.github.com/repos/glogiotatidis/meao/issues/comments{/number}","contents_url":"https://api.github.com/repos/glogiotatidis/meao/contents/{+path}","compare_url":"https://api.github.com/repos/glogiotatidis/meao/compare/{base}...{head}","merges_url":"https://api.github.com/repos/glogiotatidis/meao/merges","archive_url":"https://api.github.com/repos/glogiotatidis/meao/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/glogiotatidis/meao/downloads","issues_url":"https://api.github.com/repos/glogiotatidis/meao/issues{/number}","pulls_url":"https://api.github.com/repos/glogiotatidis/meao/pulls{/number}","milestones_url":"https://api.github.com/repos/glogiotatidis/meao/milestones{/number}","notifications_url":"https://api.github.com/repos/glogiotatidis/meao/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/glogiotatidis/meao/labels{/name}","releases_url":"https://api.github.com/repos/glogiotatidis/meao/releases{/id}","deployments_url":"https://api.github.com/repos/glogiotatidis/meao/deployments","created_at":"2018-08-17T09:19:43Z","updated_at":"2018-08-17T09:19:45Z","pushed_at":"2018-08-17T12:25:33Z","git_url":"git://github.com/glogiotatidis/meao.git","ssh_url":"git@github.com:glogiotatidis/meao.git","clone_url":"https://github.com/glogiotatidis/meao.git","svn_url":"https://github.com/glogiotatidis/meao","homepage":"https://mozilla.github.io/meao","size":3941,"stargazers_count":0,"watchers_count":0,"language":"CSS","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":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"mozilla:master","ref":"master","sha":"f49dab29543eb1c76b6d206515327b5a279ee00b","user":{"login":"mozilla","id":131524,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzMTUyNA==","avatar_url":"https://avatars2.githubusercontent.com/u/131524?v=4","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"repo":{"id":76149143,"node_id":"MDEwOlJlcG9zaXRvcnk3NjE0OTE0Mw==","name":"meao","full_name":"mozilla/meao","owner":{"login":"mozilla","id":131524,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzMTUyNA==","avatar_url":"https://avatars2.githubusercontent.com/u/131524?v=4","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla/meao","description":"The Marketing Engineering And Operations Team Blog","fork":false,"url":"https://api.github.com/repos/mozilla/meao","forks_url":"https://api.github.com/repos/mozilla/meao/forks","keys_url":"https://api.github.com/repos/mozilla/meao/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla/meao/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla/meao/teams","hooks_url":"https://api.github.com/repos/mozilla/meao/hooks","issue_events_url":"https://api.github.com/repos/mozilla/meao/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla/meao/events","assignees_url":"https://api.github.com/repos/mozilla/meao/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla/meao/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla/meao/tags","blobs_url":"https://api.github.com/repos/mozilla/meao/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla/meao/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla/meao/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla/meao/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla/meao/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla/meao/languages","stargazers_url":"https://api.github.com/repos/mozilla/meao/stargazers","contributors_url":"https://api.github.com/repos/mozilla/meao/contributors","subscribers_url":"https://api.github.com/repos/mozilla/meao/subscribers","subscription_url":"https://api.github.com/repos/mozilla/meao/subscription","commits_url":"https://api.github.com/repos/mozilla/meao/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla/meao/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla/meao/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla/meao/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla/meao/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla/meao/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla/meao/merges","archive_url":"https://api.github.com/repos/mozilla/meao/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla/meao/downloads","issues_url":"https://api.github.com/repos/mozilla/meao/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla/meao/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla/meao/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla/meao/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla/meao/labels{/name}","releases_url":"https://api.github.com/repos/mozilla/meao/releases{/id}","deployments_url":"https://api.github.com/repos/mozilla/meao/deployments","created_at":"2016-12-11T02:14:42Z","updated_at":"2018-05-15T03:22:20Z","pushed_at":"2018-08-17T12:25:49Z","git_url":"git://github.com/mozilla/meao.git","ssh_url":"git@github.com:mozilla/meao.git","clone_url":"https://github.com/mozilla/meao.git","svn_url":"https://github.com/mozilla/meao","homepage":"https://mozilla.github.io/meao","size":3940,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":8,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":9,"open_issues":8,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla/meao/pulls/86"},"html":{"href":"https://github.com/mozilla/meao/pull/86"},"issue":{"href":"https://api.github.com/repos/mozilla/meao/issues/86"},"comments":{"href":"https://api.github.com/repos/mozilla/meao/issues/86/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla/meao/pulls/86/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla/meao/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla/meao/pulls/86/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla/meao/statuses/d76697c945904ed4ea81ed7a00995b89348c2b86"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"metadave"}}