Comments (13)
Note I think this should mean that the package should move to be yarpc as well, re convo with @madhuravi about how default keys should match the package name.
from fx.
uhttp
is to avoid clashing with the stdlib http
. i'm fine with renaming the module to yarpc
.
from fx.
from fx.
My point is that YARPC uses the general name rpc
, which is not straightforward.
There could be xRPC, yRPC, zRPC in the future, and they would all be options/choices for the developer.
from fx.
Sure, using yarpc
as a key might be the least surprising - in fact, its not a terrible idea.
On the other hand, UberFX shouldn't need to support another messaging platform since YARPC can plug in transports like tchannel, http, gRPC, and Cherami. Customers have expressed interest for Kafka, QUIC, and reactive sockets as well.
I'm flexible here - whether the key is called rpc or yarpc, UberFX shouldn't have to make room for an additional RPC system since that is the exact goal of YARPC.
Perhaps the biggest argument for calling the key "yarpc" is to be explicit, and tell the use exactly what their getting.
@sectioneight your call.
from fx.
UberFx will not support any rpc modules other than YARPC. Its primary goal is to make Uber service development simple and sane, while reducing confusion. If we end up needing to use xRPC
in the future, then the yarpc
ecosystem will need to be extended to support xRPC
-- we're not going to ask services owners to choose between yarpc
and xRPC
.
from fx.
@uber-go/service-framework thoughts?
from fx.
Understand. Thanks for the answer!
from fx.
I can go either way but there doesn't seem to be a strong reason to change given future implementations will go under the same umbrella.
Everyone seems to be on the same page, resolving.
from fx.
@sectioneight you can quickly re-close this if it's decided and I can't convince everyone, but my opinion re: #315
FX's primary purpose is to make Uber service development simpler, but that doesn't mean that FX can't have implications as a general service framework for the rest of the golang community. If it is sufficiently low-cost, I think FX should aim to support use cases that aren't Uber-specific, and I think this is one of them. YARPC may support gRPC soon, but if I was a third-party developer, and I had the choice of using a new rpc library that supported gRPC, or github.com/grpc/grpc-go directly, I would probably want to use the official gRPC golang library right now. I think renaming from rpc to yarpc is a good thing to do for use of FX outside of Uber, and is a low-cost choice.
@breerly
from fx.
Also note that the http module is uhttp, not http.
from fx.
I think we should rename the module key to yarpc
.
Not because I think we should make room for another RPC system (because we shouldn't be introducing additional RPC systems when we can already plug those transparently into YARPC - e.g. YARPC gives us a single way to write handlers and outbound calls).
The reason I think we should rename the key is to make it obvious and explicit what is being configured - in this case, they are configuring YARPC.
I much prefer:
modules:
yarpc:
...
from fx.
Aiden, I think Peter is referring to a conversation we had earlier today. It's similar to Grayson's sentiments above. Our config yaml keys should match the package names so it's intuitive for users.
So in yaml we would now have:
modules:
yarpc:
...
uhttp:
...
So it's clear what the config keys stand for. Our config keys for http don't match the module name, we can change that.
from fx.
Related Issues (20)
- Handling optional fields in fx.Decorate HOT 3
- Multiple implementations HOT 3
- Optional dependency becomes required if there is a provider available HOT 1
- Factory like provider? HOT 3
- Refresh dependency HOT 5
- `fx.Decorate` not working w/ value groups HOT 3
- doc error on [register a handler with the server] HOT 2
- Fx exiting program before panic in OnStart hook gets reported HOT 1
- Add ability to override os.Exit for fxtest HOT 1
- fx.Evaluate: Support dynamic graphs by returning fx.Option from constructors
- https://github.com/benbjohnson/clock is EOL/archived. HOT 1
- fx.Decorate does not add a missing object to the module HOT 3
- When combining fx.As to annotate return type as interface with optional parameters nil value check is not working as expected HOT 1
- Startup order isn't preserved when using modules HOT 2
- Example test failing in master branch when port 8080 is already in use (89f4a90) HOT 3
- fxevent.Logger: Silence until there's an error
- Slog adapter for fx HOT 4
- Release method HOT 10
- fxtest.Lifecycle: Enforce timeout
- Impossible to inject struct that is part of a group by itself HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fx.