···67## vs `tap`
89-while [`tap`](https://github.com/bluesky-social/indigo/tree/main/cmd/tap) is designed primarily as a firehose consumer and relay, `hydrant` is flexible, it allows you to directly query the database for records, and it also provides an ordered view of events, allowing the use of a cursor to fetch events from a specific point in time.
1011### stream behavior
12···111112`hydrant` implements the following XRPC endpoints under `/xrpc/`:
113114-#### `com.atproto.*`
115116the following are implemented currently:
117- `com.atproto.repo.getRecord`
118- `com.atproto.repo.listRecords`
119120-#### `systems.gaze.hydrant.*`
121122-##### `systems.gaze.hydrant.countRecords`
00123124return the total number of stored records in a collection.
125
···67## vs `tap`
89+while [`tap`](https://github.com/bluesky-social/indigo/tree/main/cmd/tap) is designed as a firehose consumer and simply just propagates events while handling sync, `hydrant` is flexible, it allows you to directly query the database for records, and it also provides an ordered view of events, allowing the use of a cursor to fetch events from a specific point in time.
1011### stream behavior
12···111112`hydrant` implements the following XRPC endpoints under `/xrpc/`:
113114+#### com.atproto.*
115116the following are implemented currently:
117- `com.atproto.repo.getRecord`
118- `com.atproto.repo.listRecords`
119120+#### systems.gaze.hydrant.*
121122+these are some non-standard XRPCs that might be useful.
123+124+##### systems.gaze.hydrant.countRecords
125126return the total number of stored records in a collection.
127