Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Federation Sender #5

Merged
merged 3 commits into from Mar 2, 2019

Conversation

Projects
None yet
2 participants
@Half-Shot
Copy link
Collaborator

Half-Shot commented Feb 21, 2019

This now supports:

  • EDUs
    • Regular
    • Keyed
    • Device Messaging
    • Device Lists (basic, no use of prev_ids yet)
  • PDUs
  • Metrics

More things that need to be done:

  • Well-known
  • Basic SRV support
  • SRV load balancing / failover
  • Connect via HTTPS
    • Support self signed certs optionally
  • Get hosts in rooms should be not hacky
  • Ack presence

Perf issues/ Bugs:

  • On startup we treat all hosts equally, so dead hosts get as much time as live ones. We should use the destinations table and refine how we backoff.
  • Presence still fails to sign for ~30% of requests. This isn't a huge issue but it's annoying.
  • On a "large" host like half-shot.uk, the CPU can go haywire if you don't limit the tx concurrency, and it lags by minutes if you do.
  • Floods of DNS requests via well-known (and generally sending a lot of them) makes things very sad.
@Half-Shot

This comment has been minimized.

Copy link
Collaborator Author

Half-Shot commented Feb 26, 2019

This now works for EDUs, and will work for PDUs

@Half-Shot

This comment has been minimized.

Copy link
Collaborator Author

Half-Shot commented Feb 27, 2019

I've added support for metrics, which is probably very naughty on this branch but I wanted to measure performance.

@Half-Shot Half-Shot requested a review from turt2live Feb 27, 2019

@turt2live
Copy link
Owner

turt2live left a comment

Generally looks sane to me as C# code, despite my super picky linting preferences (#10)

I'm generally fine if you want to ignore all of the linting for now and I'll deal with it later - there are a couple other nits buried in this review somewhere.

@Half-Shot Half-Shot force-pushed the Half-Shot:hs/federation-sender branch from b3afdf7 to ec28955 Mar 1, 2019

@Half-Shot Half-Shot changed the title [WIP] Federation Sender Federation Sender Mar 1, 2019

Pretty damn cool implementation of a federation sender
Signed-off-by: Will Hunt <will@half-shot.uk>

Signed-off-by: Will Hunt <will@half-shot.uk>

@Half-Shot Half-Shot force-pushed the Half-Shot:hs/federation-sender branch from fe36614 to c63e289 Mar 2, 2019

@turt2live
Copy link
Owner

turt2live left a comment

You're trustworthy or something

Half-Shot added some commits Mar 2, 2019

Lint all da things
Signed-off-by: Will Hunt <will@half-shot.uk>
@Half-Shot

This comment has been minimized.

Copy link
Collaborator Author

Half-Shot commented Mar 2, 2019

It builds

Ship it

@Half-Shot Half-Shot merged commit 6b20b0d into turt2live:master Mar 2, 2019

1 check passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.