## Roadmap for clients using status-go + go-waku
| Feature | Status-Go | Desktop | Mobile | Notes |
| ------- | -------- | -------- | -------- | -------- |
| WakuV2 protocol / transport | ✔️ | n/a | n/a
| Support choosing between Waku1 and Waku2 via node config | ✔️ | ✔️ | ✔️
| Content Topics | ✔️ | n/a | n/a |
| Bandwith reporting | ✔️ | ✔️ | n/a
| Peer stats signal | ✔️ | ✔️ | |
| Peer management | ✔️ | n/a | n/a |
| Discovery | ✔️ | ✔️^1^ | ^1^ | Currently working with `go-waku` Rendezvous. go-waku also supports DNS Discovery, but we need to add a setting in status-go to enable it
| Rendezvous | ✔️ | ✔️^1^ | ^1^ | Desktop uses the `go-waku` test fleet, which supports running rendezvous servers. Mobile will need to add some config keys for using go-waku fleet
| Store protocol | ✔️ | ✔️ | | Allows requesting messages from a store node.
| Bridge | ✔️ | n/a | n/a | Content topic was modified to match nim-waku bridge. Also, issues on the bridge were identified and fixed
| Historic message fetching | ✔️ | ✔️ | |
| Light client | ✔️ | ✔️ | | This uses Lightpush + Filter protocol. These protocols specs are still not stable / production ready. Proper peer selection is still needed. **Needs to be discussed with Vac team how this will be implemented.**
| Message confirmation | ^?^ | ^?^ | ^?^ | This refers to the `message.sent` / `message.expired` signals that are emitted once a message arrives to a mailserver. **Needs to be discussed with Vac team how this will be implemented.**
| Review config items | ^1^ | ^1^ | ^1^ | There's an open [issue](https://github.com/vacp2p/rfc/issues/419) for suggested settings for Waku2. It might make sense to make these settings part of the node config. Also, a lot of config keys from Waku1 are still available in Waku2 and they probably don't make sense, so it might be a good idea to do a general cleanup
| Custom store nodes | | | | It should be possible to add custom store nodes and make the mailserver cycle aware of these new nodes (currently it only works with V1)
- n/a: not applicable
- ^1^: No frontend work required. Only requires modifying node config used when switching between waku versions
- ^?^: It's unknown at the moment if this is required
- An empty cell means that the task has not been started