The new event client features will be folded into the existing EventLogging extension in phases. Hopefully this will streamline code review and make it easier for us to manage the work. Each phase has its own task, since each phase will be its own patch. Things may change. For now, here is an outline of the phases:
Essential (MVP)
The 'essential' phases are captured in T238544: MEP Client MediaWiki JS (MVP).
- Phase 1 (Base API)
- Events are sent using HTTP POST to an EventGate instance
- Stream configuration data is loaded by the extension and used to format events
- Phase 2 (Sampling)
- Per-stream uniform sampling rate can be set by a stream configuration field.
Non-essential
We know how to make these features and think they are important, but they are not on our critical path.
[] Phase 3 (Stream CCing)
- Events for a stream foo will be copied to any stream matching foo.*, and have the stream logic for foo.* applied to it.
- Phase 4 (Association controller and others)
- Events have certain property values assigned automatically by the client.
A rough outline in JavaScript code is provided at: https://github.com/linehan/el-epc-patch-phases.