SquareDash/Library/PackageCache/com.unity.services.analytics@4.3.0/Runtime/README.md
kingjuulian06 0efb85038a Arbeit 2
2023-11-21 22:03:49 +01:00

56 lines
2.0 KiB
Markdown

# Runtime Documentation
This document only outlines some of the general runtime themes, this is not an
in-depth guide.
## General Design
The general structure is the public API sits on top, and orchestrates the
interactions with the components below. Each component sits in its own directory.
```plaintext
---------------------------------------------
| |
| Analytics Runtime API |
| |
|------||-------------||------------||------|
| | | |
| Data Gen | Platform | Runtime |
| | | |
---------------------------------------------
```
- `./*.cs` the public API, this brings together the elements below. Nothing under this should be public to the calling code.
- `./Data/*.cs` files handling the creating and storing of event data.
- `./Platform/*.cs` files that handle various platform information.
- `./Runtime/*.cs` files that contain runtime logic.
## General Themes
### Lazy Init
The user is free to push event data into the SDK even if it has not been
initialized, this is to allow data to be recorded that might exist before
initialization, or if the network is currently inactive.
The data will be stored in `Data/Buffer.cs`, and when initialized the heartbeat
will start to flush data out of the buffer.
### Event Data
The path to generate event data is as follows.
- User calls an API entry point on `Events.cs`.
- Standard events are generated in the `Data/Generator.cs`.
- This information is pushed into `Data/Buffer.cs`.
- Heartbeat then flushes out the data and sends to the backend.
### Heartbeat
Periodically the heartbeat will flush data out of the buffer, but this is only
happens after the SDK has been initialized.
- Heartbeat will callback periodically.
- If data is found in `Data/Buffer.cs` it will be serialized to JSON and sent