google / tarpc

An RPC framework for Rust with a focus on ease of use.
MIT License
3.09k stars 189 forks source link

how to use it in client browser? #457

Open sprappcom opened 5 days ago

sprappcom commented 5 days ago
  1. is this production ready?
  2. who are the users of it?

thx

tikue commented 5 days ago

Hi! I don't have any examples of using it on the browser. I've heard in the past of people experimenting with compiling to wasm, but I haven't done so myself.

  1. tarpc by itself is a small piece of the production story. IMO a lot goes into production readiness and has as much to do with who's deploying the code as it does what the code is. There are a lot of additional things to think about when deploying, like:
    • transport protocol: will forwards compatibility be needed so that additional data can be added to requests as the service adopts new features?
    • software release processes — when bugs are inevitably introduced into the production stack, how are they caught before they affect a large percentage of users?
    • traffic patterns — how much traffic will there be? Is traffic steady or does it spike at some times of the day, week, month, or year? Will there be one process deployed or is a level of redundancy needed?
    • load balancing — Does there need to be automatic scaling up or down of number of processes to meet changing traffic patterns? If deploying multiple redundant processes, how will load balancing be done? How do clients discover the addresses of all the redundant services? When a process is overloaded, how will it shed load to keep itself healthy?
    • authentication and authorization — how will user data be protected?
    • telemetry — how are metrics, traces, and logs being collected and monitored?
    • oncall rotation — who is responding if an alert goes off in the middle of the night?
      1. Crates.io shows reverse dependencies, that's probably the easiest way to find out who's using it: https://crates.io/crates/tarpc/reverse_dependencies