Page MenuHomePhabricator

Event Platform Client Library Specification
Open, MediumPublic


Common specification for clients producing events

  • Our products detect data in the form of events, and send these events to our event platform.
  • We want to avoid a situation where data from different products cannot be compared due to differences in the way that the data was collected.
  • It is impossible to use a single implementation to cover all products.

In order to solve this engineering challenge, we will create a common specification for all "event platform clients" to follow. An event platform client is just a software library that produces events to our event platform. Such libraries currently exist in iOS, Android, JavaScript, and PHP.
The specification will be used as a guide to re-factoring the existing client libraries during the necessary upgrade to produce events to EventGate rather than EventLogging. It will also serve as a foundation for documentation of the system, and a technical structure on which to build and organize analytics practices across the product organization.


The specification is organized into sections, each covering a functional unit of software. These are:

  • Buffering - buffering events or HTTP requests
  • Identifiers - generation and formatting of identifier values
  • Sampling - determining whether an instrument is in or out of sample
  • Streams - the stream abstraction and its management
  • Debugging - tools for developers to inspect behavior during testing
  • Integration - functions that couple the library to MediaWiki

More may be added as the need is identified. Each section is tracked by a separate ticket. There are corresponding tickets for the implementation of these sections in each of the target platforms.

Event Timeline

Assuming this task is about Product-Analytics / #Reading-Infrastructure-Team-Backlog hence adding project tags so others can find this task under these projects.

jlinehan renamed this task from Event Platform Client Library Specification (EPC-LS) to Event Platform Client Library Specification.Aug 27 2019, 12:52 PM
jlinehan updated the task description. (Show Details)

@jlinehan @mpopov Integration is listed as a section in the description; does it need a ticket?

Removing inactive assignee from this open task. (Please update assignees on open tasks after offboarding. Thanks.)