{"action":"created","issue":{"url":"https://api.github.com/repos/prebid/prebid-server/issues/404","repository_url":"https://api.github.com/repos/prebid/prebid-server","labels_url":"https://api.github.com/repos/prebid/prebid-server/issues/404/labels{/name}","comments_url":"https://api.github.com/repos/prebid/prebid-server/issues/404/comments","events_url":"https://api.github.com/repos/prebid/prebid-server/issues/404/events","html_url":"https://github.com/prebid/prebid-server/pull/404","id":303964020,"number":404,"title":"[Proposal] Rework stored request caches to allow propagation of invalidation/updates","user":{"login":"cirla","id":9155109,"avatar_url":"https://avatars2.githubusercontent.com/u/9155109?v=4","gravatar_id":"","url":"https://api.github.com/users/cirla","html_url":"https://github.com/cirla","followers_url":"https://api.github.com/users/cirla/followers","following_url":"https://api.github.com/users/cirla/following{/other_user}","gists_url":"https://api.github.com/users/cirla/gists{/gist_id}","starred_url":"https://api.github.com/users/cirla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cirla/subscriptions","organizations_url":"https://api.github.com/users/cirla/orgs","repos_url":"https://api.github.com/users/cirla/repos","events_url":"https://api.github.com/users/cirla/events{/privacy}","received_events_url":"https://api.github.com/users/cirla/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"cirla","id":9155109,"avatar_url":"https://avatars2.githubusercontent.com/u/9155109?v=4","gravatar_id":"","url":"https://api.github.com/users/cirla","html_url":"https://github.com/cirla","followers_url":"https://api.github.com/users/cirla/followers","following_url":"https://api.github.com/users/cirla/following{/other_user}","gists_url":"https://api.github.com/users/cirla/gists{/gist_id}","starred_url":"https://api.github.com/users/cirla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cirla/subscriptions","organizations_url":"https://api.github.com/users/cirla/orgs","repos_url":"https://api.github.com/users/cirla/repos","events_url":"https://api.github.com/users/cirla/events{/privacy}","received_events_url":"https://api.github.com/users/cirla/received_events","type":"User","site_admin":false},"assignees":[{"login":"cirla","id":9155109,"avatar_url":"https://avatars2.githubusercontent.com/u/9155109?v=4","gravatar_id":"","url":"https://api.github.com/users/cirla","html_url":"https://github.com/cirla","followers_url":"https://api.github.com/users/cirla/followers","following_url":"https://api.github.com/users/cirla/following{/other_user}","gists_url":"https://api.github.com/users/cirla/gists{/gist_id}","starred_url":"https://api.github.com/users/cirla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cirla/subscriptions","organizations_url":"https://api.github.com/users/cirla/orgs","repos_url":"https://api.github.com/users/cirla/repos","events_url":"https://api.github.com/users/cirla/events{/privacy}","received_events_url":"https://api.github.com/users/cirla/received_events","type":"User","site_admin":false},{"login":"cindyhere33","id":11478095,"avatar_url":"https://avatars1.githubusercontent.com/u/11478095?v=4","gravatar_id":"","url":"https://api.github.com/users/cindyhere33","html_url":"https://github.com/cindyhere33","followers_url":"https://api.github.com/users/cindyhere33/followers","following_url":"https://api.github.com/users/cindyhere33/following{/other_user}","gists_url":"https://api.github.com/users/cindyhere33/gists{/gist_id}","starred_url":"https://api.github.com/users/cindyhere33/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cindyhere33/subscriptions","organizations_url":"https://api.github.com/users/cindyhere33/orgs","repos_url":"https://api.github.com/users/cindyhere33/repos","events_url":"https://api.github.com/users/cindyhere33/events{/privacy}","received_events_url":"https://api.github.com/users/cindyhere33/received_events","type":"User","site_admin":false},{"login":"ndhimehta","id":26911109,"avatar_url":"https://avatars2.githubusercontent.com/u/26911109?v=4","gravatar_id":"","url":"https://api.github.com/users/ndhimehta","html_url":"https://github.com/ndhimehta","followers_url":"https://api.github.com/users/ndhimehta/followers","following_url":"https://api.github.com/users/ndhimehta/following{/other_user}","gists_url":"https://api.github.com/users/ndhimehta/gists{/gist_id}","starred_url":"https://api.github.com/users/ndhimehta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ndhimehta/subscriptions","organizations_url":"https://api.github.com/users/ndhimehta/orgs","repos_url":"https://api.github.com/users/ndhimehta/repos","events_url":"https://api.github.com/users/ndhimehta/events{/privacy}","received_events_url":"https://api.github.com/users/ndhimehta/received_events","type":"User","site_admin":false}],"milestone":null,"comments":4,"created_at":"2018-03-09T20:05:02Z","updated_at":"2018-04-05T16:26:08Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/prebid/prebid-server/pulls/404","html_url":"https://github.com/prebid/prebid-server/pull/404","diff_url":"https://github.com/prebid/prebid-server/pull/404.diff","patch_url":"https://github.com/prebid/prebid-server/pull/404.patch"},"body":"Proposed partial solution for #392. Includes implementation of an HTTP endpoint that could be exposed either behind authentication or on a private network to allow cache updates and invalidations.\r\n\r\n**Example:** (adding hypothetical implementations for memcached `Cache` and Kafka `EventProducer`)\r\n```go\r\n// fetch from DB\r\ndb := db_fetcher.NewPostgresDb(dbCfg)\r\npgFetcher := db_fetcher.NewFetcher(db, cfg.Postgres.MakeAmpQuery)\r\n\r\n// layer in-memory LRU on top of shared memcached instance\r\nlruCache := in_memory.NewLRUCache(lruCfg)\r\nmemcachedCache := memcached.NewMemcachedCache(mcCfg)\r\ncaches := ComposedCache{lruCache, memcachedCache}\r\n\r\n// subscribe caches to updates/invalidations from Kafka stream\r\nkafkaEvents := events.NewKafkaEvents(kafkaCfg) \r\nlistener := Listen(caches, kafkaEvents)\r\n\r\n// layer caches on top of fetcher\r\nconfigFetcher := WithCache(dbFetcher, caches)\r\n```\r\n\r\n`EventProducer`s could also be based on some pubsub technology, e.g. Postgres LISTEN/NOTIFY, Kafka, Kinesis."},"comment":{"url":"https://api.github.com/repos/prebid/prebid-server/issues/comments/378995257","html_url":"https://github.com/prebid/prebid-server/pull/404#issuecomment-378995257","issue_url":"https://api.github.com/repos/prebid/prebid-server/issues/404","id":378995257,"user":{"login":"cindyhere33","id":11478095,"avatar_url":"https://avatars1.githubusercontent.com/u/11478095?v=4","gravatar_id":"","url":"https://api.github.com/users/cindyhere33","html_url":"https://github.com/cindyhere33","followers_url":"https://api.github.com/users/cindyhere33/followers","following_url":"https://api.github.com/users/cindyhere33/following{/other_user}","gists_url":"https://api.github.com/users/cindyhere33/gists{/gist_id}","starred_url":"https://api.github.com/users/cindyhere33/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cindyhere33/subscriptions","organizations_url":"https://api.github.com/users/cindyhere33/orgs","repos_url":"https://api.github.com/users/cindyhere33/repos","events_url":"https://api.github.com/users/cindyhere33/events{/privacy}","received_events_url":"https://api.github.com/users/cindyhere33/received_events","type":"User","site_admin":false},"created_at":"2018-04-05T16:26:08Z","updated_at":"2018-04-05T16:26:08Z","author_association":"CONTRIBUTOR","body":"sorry for the delay, reviewing it now.."}}
{"actor":{"display_login":"cindyhere33"}}