# Other changes

Consider what happens for a big transaction -- Postgres will return us
many records, each with the same commit sequence, and different values
of "index." Should the "/changes" API always return them all, even if
"limit" is exceeded? It might simplify things.

# Lower Priority

Add basic authentication to the API. (Greg has code for that.)

Complete the health check mechanism so that a load balancer can mark the server
down for a zero-downtime replacement. (Greg can do that.)

Support the "Comet" technique or even WebSockets in addition to long polling.
