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 / Product-Infrastructure-Team-Backlog hence adding project tags so others can find this task under these projects.

jlinehan moved this task from Inbox to Epics on the Better Use Of Data board.
jlinehan moved this task from Epics to Doing on the Better Use Of Data board.
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?