Skip to content

Add retry support to ruma-client #5

Description

@jplatte

The shortcoming you see

Currently, ruma-client never retries failed requests. Implementing retries on top of ruma-client means re-serializing requests, which is not ideal.

The improvement

Make it easier to do request retries w/o serializing the same request again, in one of these ways:

  1. Direct support
    • pro: Makes it easy to use ruma-client in a more robust way
    • con: Larger API surface
  2. Callback API
    • pro: Smaller API surface
    • con: Kind of ugly API?
  3. Enhancing ruma-client's Error type (making the serialized request accessible from it)
    • pro: Maximally flexible
    • con: Also somewhat ugly?

I'm currently leaning towards option 3, but I'm not really certain.

edit: Option 3 also allows adding option 1 on top later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions