@heycatch/sdk 0.7.1-dev.1459 → 0.8.0-dev.1460

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -87,6 +87,39 @@ busy page sends more requests than a quiet one. `flushIntervalMs: 250` is the
87
87
  middle ground - still batched, but a window short enough that a navigation
88
88
  rarely lands inside it.
89
89
 
90
+ ## Volume limits
91
+
92
+ A tracking call inside a render loop or an effect can send thousands of
93
+ events from one browser tab, and nothing about the app looks broken while it
94
+ does. So the SDK bounds what one session can send. None of this needs
95
+ configuring. The first three limits are the SDK's own, and each logs one
96
+ `[HeyCatch] …` console warning the first time it applies on a page, so a
97
+ runaway loop is visible where you are already looking:
98
+
99
+ - **5,000 events per session.** Past that, the rest of the session is
100
+ dropped until a new one starts. Real sessions do not get near this - it is
101
+ a backstop for a loop, not a quota for a busy user.
102
+ - **60 person-property updates a minute.** Call `setPersonProperties` when a
103
+ property changes, not on every render. Updates past the budget are dropped;
104
+ pageviews and other events in the same session still flow.
105
+ - **localhost is throttled, not filtered out.** A session on `localhost`,
106
+ `127.0.0.1` or a private-network host sends its first 1,000 events like
107
+ any other, then 60 a minute. A dev server hot-reloading for an hour cannot
108
+ flood your dashboard, and your first local test still shows up on the
109
+ Install page. Only this throttle is limited to local hosts: a production
110
+ session meets the other three limits like any other, and a local session
111
+ that reaches the cap is cut off like any other.
112
+ - **5 events a second, sustained** (browser only). Bursts of up to 50 pass;
113
+ a steady stream faster than that is dropped. This one applies from the
114
+ first event, on every host, and it belongs to the transport rather than
115
+ the SDK, so there is no `[HeyCatch]` warning for it: the transport logs
116
+ its own console error, under its own prefix, for each call it drops.
117
+
118
+ The session cap and the person-property budget apply in React Native too. The
119
+ localhost limit does not: a native event has no page host, so there is
120
+ nothing to tell a simulator from a phone. Server events are not counted at
121
+ all - each one is a call your own code made.
122
+
90
123
  ## License
91
124
 
92
125
  MIT