I would actually rather see it as a continuous stream of JSON events. Instead of:

```
[{"action":"expire"...}]
[{"action":"expire"...},{"action":"expire"...},{"action":"expire"...}]
```

I would like this instead:

```
{"action":"expire"...}
{"action":"expire"...}
{"action":"expire"...}
{"action":"expire"...}
```

Then the client can just read until `io.EOF`.

The code can just be:

```go
e := json.NewEncoder(w)
if len(events) == 0 {
    e.Encode(event)
} else {
    for _, event := range events {
        e.Encode(event)
    }
}
```