dendrite/clientapi/routing
S7evinK 161f145176
Add NATS JetStream support (#1866)
* Add NATS JetStream support
Update shopify/sarama

* Fix addresses

* Don't change Addresses in Defaults

* Update saramajetstream

* Add missing error check

Keep typing events for at least one minute

* Use all configured NATS addresses

* Update saramajetstream

* Try setting up with NATS

* Make sure NATS uses own persistent directory (TODO: make this configurable)

* Update go.mod/go.sum

* Jetstream package

* Various other refactoring

* Build fixes

* Config tweaks, make random jetstream storage path for CI

* Disable interest policies

* Try to sane default on jetstream base path

* Try to use in-memory for CI

* Restore storage/retention

* Update nats.go dependency

* Adapt changes to config

* Remove unneeded TopicFor

* Dep update

* Revert "Remove unneeded TopicFor"

This reverts commit f5a4e4a339b6f94ec215778dca22204adaa893d1.

* Revert changes made to streams

* Fix build problems

* Update nats-server

* Update go.mod/go.sum

* Roomserver input API queuing using NATS

* Fix topic naming

* Prometheus metrics

* More refactoring to remove saramajetstream

* Add missing topic

* Don't try to populate map that doesn't exist

* Roomserver output topic

* Update go.mod/go.sum

* Message acknowledgements

* Ack tweaks

* Try to resume transaction re-sends

* Try to resume transaction re-sends

* Update to matrix-org/gomatrixserverlib@91dadfb

* Remove internal.PartitionStorer from components that don't consume keychanges

* Try to reduce re-allocations a bit in resolveConflictsV2

* Tweak delivery options on RS input

* Publish send-to-device messages into correct JetStream subject

* Async and sync roomserver input

* Update dendrite-config.yaml

* Remove roomserver tests for now (they need rewriting)

* Remove roomserver test again (was merged back in)

* Update documentation

* Docker updates

* More Docker updates

* Update Docker readme again

* Fix lint issues

* Send final event in `processEvent` synchronously (since this might stop Sytest from being so upset)

* Don't report event rejection errors via `/send`, since apparently this is upsetting tests that don't expect that

* Go 1.16 instead of Go 1.13 for upgrade tests and Complement

* Revert "Don't report event rejection errors via `/send`, since apparently this is upsetting tests that don't expect that"

This reverts commit 368675283fc44501f227639811bdb16dd5deef8c.

* Don't report any errors on `/send` to see what fun that creates

* Fix panics on closed channel sends

* Enforce state key matches sender

* Do the same for leave

* Various tweaks to make tests happier

Squashed commit of the following:

commit 13f9028e7a63662759ce7c55504a9d2423058668
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 15:47:14 2022 +0000

    Do the same for leave

commit e6be7f05c349fafbdddfe818337a17a60c867be1
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 15:33:42 2022 +0000

    Enforce state key matches sender

commit 85ede6d64bf10ce9b91cdd6d80f87350ee55242f
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 14:07:04 2022 +0000

    Fix panics on closed channel sends

commit 9755494a98bed62450f8001d8128e40481d27e15
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 13:38:22 2022 +0000

    Don't report any errors on `/send` to see what fun that creates

commit 3bb4f87b5dd56882febb4db5621db484c8789b7c
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 13:00:26 2022 +0000

    Revert "Don't report event rejection errors via `/send`, since apparently this is upsetting tests that don't expect that"

    This reverts commit 368675283fc44501f227639811bdb16dd5deef8c.

commit fe2673ed7be9559eaca134424e403a4faca100b0
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 12:09:34 2022 +0000

    Go 1.16 instead of Go 1.13 for upgrade tests and Complement

commit 368675283fc44501f227639811bdb16dd5deef8c
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 11:51:45 2022 +0000

    Don't report event rejection errors via `/send`, since apparently this is upsetting tests that don't expect that

commit b028dfc08577bcf52e6cb498026e15fa5d46d07c
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date:   Tue Jan 4 10:29:08 2022 +0000

    Send final event in `processEvent` synchronously (since this might stop Sytest from being so upset)

* Merge in NATS Server v2.6.6 and nats.go v1.13 into the in-process connection fork

* Add `jetstream.WithJetStreamMessage` to make ack/nak-ing less messy, use process context in consumers

* Fix consumer component name in  federation API

* Add comment explaining where streams are defined

* Tweaks to roomserver input with comments

* Finish that sentence that I apparently forgot to finish in INSTALL.md

* Bump version number of config to 2

* Add comments around asynchronous sends to roomserver in processEventWithMissingState

* More useful error message when the config version does not match

* Set version in generate-config

* Fix version in config.Defaults

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2022-01-05 17:44:49 +00:00
..
account_data.go Use NotFound instead of Forbidden for missing account data (#1872) 2021-06-14 14:06:14 +01:00
admin_whois.go Implemented whois endpoint (#1573) 2020-11-17 10:07:03 +00:00
aliases.go Various alias fixes (#1934) 2021-07-21 16:53:50 +01:00
auth_fallback.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
capabilities.go Finish implementing the capabilities endpoint (#1449) 2020-09-29 10:06:59 +01:00
createroom.go Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00
deactivate.go Read the right username field when performing account deactivation (#1954) 2021-08-02 13:11:23 +01:00
device.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
directory_public_test.go Implement ExtraPublicRoomsProvider for p2p demos (#1180) 2020-07-03 12:59:00 +01:00
directory_public.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
directory.go Merge federationapi, federationsender, signingkeyserver components (#2055) 2021-11-24 10:45:23 +00:00
getevent.go Send events to appservice based on room membership (#1680) 2021-03-03 16:27:44 +00:00
joinroom.go Return 200 on join before time out (#1493) 2020-10-07 15:29:14 +01:00
key_backup.go Add missing HTTP mode for userapi (#1982) 2021-12-03 17:18:35 +00:00
key_crosssigning.go Hopefully fix UIA for cross-signing setup (closes #1983) (#1986) 2021-08-24 11:44:03 +01:00
keys.go Cross-signing groundwork (#1953) 2021-08-04 17:56:29 +01:00
leaveroom.go
login.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
logout.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
membership.go Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00
memberships.go Don't send null in joined_rooms response (#1659) 2020-12-18 13:33:08 +00:00
openid.go Implement OpenID module (#599) (#1812) 2021-04-07 13:26:20 +01:00
password.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
peekroom.go Peeking updates (#1607) 2020-12-03 11:11:46 +00:00
profile.go Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00
receipt.go Implement read receipts (#1528) 2020-11-09 18:46:11 +00:00
redaction.go Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00
register_secret_test.go Implement /_synapse/admin/v1/register (#1911) 2021-07-09 16:52:31 +01:00
register_secret.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
register_test.go Don't populate config defaults where it doesn't make sense (#2058) 2021-11-24 11:57:39 +00:00
register.go Implement /_synapse/admin/v1/register (#1911) 2021-07-09 16:52:31 +01:00
room_tagging.go
routing.go Ratelimit requests to /media/r0/download|upload (#2020) 2021-11-24 12:55:44 +00:00
sendevent.go Add NATS JetStream support (#1866) 2022-01-05 17:44:49 +00:00
sendtodevice.go
sendtyping.go Remove QueryCurrentState from current-state-server (#1395) 2020-09-04 12:30:56 +01:00
state.go Increase gocyclo complexity to 25 (and remove all but 2 golint directives related to it) (#1783) 2021-03-03 14:35:57 +00:00
threepid.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
userdirectory.go Remove QueryKnownUsers from current state server (#1393) 2020-09-04 11:46:01 +01:00
voip.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
whoami.go