Metadata-Version: 2.4
Name: bookcicle-eventing
Version: 1.0.1
Summary: Privacy-conscious Eventing by Bookcicle SDK
Author: Bookcicle
License-Expression: MIT
Project-URL: Repository, https://github.com/bookcicle/bookcicle-eventing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Eventing SDK — Python 3.9+

Install after its initial public release: `pip install bookcicle-eventing`.

```python
from eventing_sdk import EventingClient

events = EventingClient('https://events.example.com/events')
events.track({'name': 'checkout_completed', 'properties': {'product': 'book'}})
result = events.flush()
events.close()
```

Automatic batching: 25 events, first-event timer of 1 second (maximum age 5 seconds),
8192 UTF-8 bytes including the envelope. Three attempts per flush round with
200/400 ms backoff; retry 429/500/502/503/504 and network failures. Only HTTP 202
acknowledges ingestion. IDs and serialized bytes stay unchanged within a retry round.

Events are persisted before `track` succeeds. Transient failures stay queued and
retry automatically after 1 second; restart resumes pending events. Permanent
responses retain events and stop background retries until another track/flush.
Use queue inspection and discard to handle poison events. Queue capacity is 1000;
overflow rejects the new event without evicting older events. Close stops timers
and tries a final flush; failed events remain persisted.

Recursive privacy filtering removes common PII/click identifiers by default.
Opting into sensitive properties never permits token/authorization fields. Auth is
obtained once per batch, never persisted, and refreshed for the next batch.
Use HTTPS with /events, /public or /secure; redirects are never followed.

See the repository's [SDK contract](https://github.com/bookcicle/bookcicle-eventing/blob/main/sdk/README.md) for configuration, persistence,
behavioral guarantees and publishing setup. SDKs are MIT licensed; the ingestion
runtime retains its separate commercial license.
