module LaunchDarkly

Namespace for the LaunchDarkly Ruby SDK.

Analytics event processing in the SDK involves several components. The purpose of this design is to minimize overhead on the application threads that are generating analytics events.

EventProcessor receives an analytics event from the SDK client, on an application thread. It places the event in a bounded queue, the “inbox”, and immediately returns.

On a separate worker thread, EventDispatcher consumes events from the inbox. These are considered “input events” because they may or may not actually be sent to LaunchDarkly; most flag evaluation events are not sent, but are counted and the counters become part of a single summary event. EventDispatcher updates those counters, creates “index” events for any users that have not been seen recently, and places any events that will be sent to LaunchDarkly into the “outbox” queue.

When it is time to flush events to LaunchDarkly, the contents of the outbox are handed off to another worker thread which sends the HTTP request.

Constants

DELETE

@private

EventSummary

@private

FEATURES

@private

FlushPayload

@private

KEY_PATHS

@private

MAX_FLUSH_WORKERS
PATCH

@private

PUT

@private

READ_TIMEOUT_SECONDS

@private

SEGMENTS

@private

USER_ATTRS_TO_STRINGIFY_FOR_EVENTS
VERSION

Public Class Methods

have_listen?() click to toggle source

@private

# File lib/ldclient-rb/file_data_source.rb, line 19
def self.have_listen?
  @@have_listen
end