batchman
BatchMan is an Android library designed to efficiently batch and manage events before transmitting them to a server. It is primarily used for developing in-house analytics SDKs where optimizing network calls is critical. The library collects raw event data, groups it according to configurable strategies such as time intervals or batch size, and triggers a single API call when conditions are met. A key feature is its robust persistence mechanism, which stores events on disk to prevent data loss during application crashes or unexpected closures. BatchMan utilizes a modular architecture allowing developers to customize core behaviors through interchangeable interfaces. Users can implement or select from provided options for batch management, data batching logic, and persistence strategies. It also supports serialization for efficient data handling and includes background thread management to offload heavy read and write operations. The library features built-in exponential backoff to handle network failures grac