Comments (6)
We are going to make a big rename here.
Due to many teams actively using this type in production right now even, and sometimes OUTSIDE of the context of distributed tracing just as a "glorified type-safe typesafe dictionary" we are going to embrace that that's what this type is, and going to call it ServiceContext
.
Truth be told, this type wanted to be called this long time ago but it was back then decided that Context was too generic and we picked a tracing only name. Reality has shown us that the type is much more useful and we should not limit its wording and usage to tracing.
Thanks for opening the discussion and I'll do the necessary changes including repo name change
from swift-distributed-tracing-baggage.
It would probably still feel a bit weird in the context Johannes was talking about with https://github.com/apple/swift-llbuild2, but how about a rename to swift-instrumentation-baggage
? The module name could stay the same (InstrumentationBaggage
). Therefore package and module names would be more aligned. Plus, it sounds a bit more generic than swift-distributed-tracing-baggage
.
from swift-distributed-tracing-baggage.
Once that's done we'll call a 1.0 of this as well as tracing package 🥳
from swift-distributed-tracing-baggage.
Suggestions:
- type: stays
Baggage
- repo: changes to
swift-baggage
(losesdistributed-tracing-
) - module: ideally
Baggage
too but that causes this issue, swift#62639
So for now probably just BaggageModule
and once swift#62639 is solved we can just rename to Baggage
and fill BaggageModule
with @_exported import Baggage
only...
from swift-distributed-tracing-baggage.
I’d be okey with that, though we’ll have to do a round of asking people about opinions before we do so.
Technically this type is modeled to be close to https://www.w3.org/TR/baggage/ and https://cs.brown.edu/~jcmace/papers/mace18universal.pdf specifically. But it’s true that the shape or just being a typed dictionary intended to pass metadata around is a common thing, not just instrumentation. This is still in spirit of the Universal Context Propagation baggage paper so I don’t mind saying to use this for propagation in general, though I do believe the focus should be propagating ACROSS process boundaries.
Having that said, it’ll “just work” even if you put things not intended for cross process propagation into baggage because how our tracing types work: they have to know which keys they’re supposed to propagate. So accidental propagation is not going to happen. And propagation of many keys is intended to be solved my registering a multiplex instrument.
Tl;dr; we have to double check this, but it’d be within the spirit of this project, and broaden its usefulness so that might be good.
from swift-distributed-tracing-baggage.
Revisiting this before we head towards 1.0 here (in tracing apple/swift-distributed-tracing#99) and... I'm unsure about the renaming to be honest...
Does anyone have strong opinions here @tomerd @weissi ?
Would folks be ok with the names @weissi proposed up-thread?
from swift-distributed-tracing-baggage.
Related Issues (9)
- Merge Final API proposal after reviews conclude
- Baggage namespace has conflict with `CoreBaggage.Baggage` HOT 6
- Remove LoggingContext and BaggageCore HOT 2
- Compilation fails on Swift 5.5 [known issue until Xcode ships with macOS 12 SDK] HOT 5
- Access control per baggage item key HOT 2
- requiring Sendable from Baggage is source breaking HOT 8
- Update README according to Final API HOT 1
- `Baggage.$current.withValue` vs `Baggage.withValue` and actors HOT 1
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 swift-distributed-tracing-baggage.