So the last part will be the final conclusion. And if time permits, I will sketch the proof. Okay. So in this talk, if you are not familiar with those complex geometric terms, so for torsion-free coordinate shift, you can view it as holomorphic effect bundles with singularities. The singular set will be sub-varieties of co-dimension at least two. So you can take the ideal shift of a point, for example. So coherent just means that they behave well near the singular set. So for reflexive shift, you can use them as holomorphic effect bundles with co-dimension three singularities and a good property that it has satisfied, it's Hato's extension property. A good example can be given by this one. So you take three functions, z1, z2, z3, and then you have a map, then you take the corner. So as you can see, this map has a zero at the origin. So this E, where it has an essential singularity at the point origin, rather than that, it will just be smooth holomorphic effect bundle. So based on the definition, you know that this kind of torsion-free coordinate shift or reflexive coordinate shifts, they only appear when your base dimension is at least two for torsion-free shift and at least three for reflexive shifts. And also to go from the category of torsion-free shift to the category of reflexive shift, you can just take the home shift from this shift E to the structure shift. This will give you a reflexive shift. And a shift is the reflexive shift. Just means that if you take the home shift twice, you recover itself. So these are some elementary properties. So basically you can use them as homomorphic effect bundles with controlled singularities. So that's the meaning. Okay. So these are just some concepts. Given this, let's recall Donelson-Wollin-Baggy-Yaw theorem. It says, suppose you have a homomorphic effect bundle of a compact Taylor manifold. The theorem says that if you know this E is slope stable, then they exist a Hermitian-Yaw mass metric H on this E. So by Hermitian-Yaw mass metric, just means that you take the curvature of the chain connection determined by this H. Now you look at the contraction of the Taylor form of this curvature. It would be a multiple of the identity map. Unless mu here is a constant. So this is the equation. Let me define what is the meaning of the slope stability. So it means that if you look at all the sub bundles with singularities, now you can compute the average of the first-chain class by doing integration with respect to the Taylor form. So it will be strictly smaller than the slope of the ambient shift E. So in this case, we call the bundle to be slope stable. If you have a... Sorry. Yes. I was wondering what the first-chain class of a sheaf is. How does one define that? I know what the first-chain class of a bundle is but not the other sheaf. Yeah, so as I said, so the definition can be given as follows, actually. So this shift E is a vector bundle outside of outside of code dimension two sub variety. So you can define and determine there. And actually you can show that this determinant can be extended to be defined over the whole space. So you get a genuine line bundle. We define the first-chain class to be that one. Right, thank you. Mm-hmm. So this is the slope stability. Now in literature, the chain connection involved in this theorem is usually referred as Hermitian-Yamlos connection. And actually just by using the Taylor identity, you know that Hermitian-Yamlos actually implies a curvature to be harmonic. So it's indeed a Yamlos connection. So this is Donaldson-Wollin-Bay-Yaw theorem. Later, this was generalized by Bander on the seal to the case of stable reflector sheafs by using the so-called Hermitian-Yamlos metric. As I mentioned earlier, reflector sheaf are bundles with code dimension three singularities. So when you talk about the Hermitian-Yamlos connection, so it is just defined away from the singular set of the bundle, but at the same time, the curvature, the L2 norm of the curvature has to be finite. So this is so-called admissible Hermitian-Yamlos metric. Let me give you a genuine example of a stable reflector sheaf that is not a homomorphic of that bundle. So you consider this sheaf E over Cp3. So basically you'll take three sections of the hyperplane bundle. Now you take the quotient of this one, this will be rank two, and this E has an isolated singularity given by the zero of this one. And the one can check that this E is actually a stable reflector sheaf. By using some algebraic geometric criteria. So by bundle on the sheaf theorem, theoretically we know that they exist a singular Hermitian-Yamlos connection on this E. So this is bundle on sheaf theorem. Let me give you a few remarks here. So bundle on sheaf theorem implies theoretical existence of singular Hermitian-Yamlos connections. And for given explicitly examples, the local information of the singular set can be usually described by using resolutions like this one, like we just did with this one. So algebraically we know how to describe the singularity. And also this kind of singular connections naturally appear on the boundary if you compactify the modular space of Hermitian-Yamlos connections or given unitary bundle. And this kind of singular, this kind of as appearance of this kind of singular connections make the compatibility very difficult. So what is the meaning of that? So if you assume the base dimension is three, now if you look at all this kind of singular connections on the boundary, because it is singular, so the singular set consists of points. So basically the difficulty lies in you don't have control of the number of the points, of the singular points of the boundary. So yeah, you don't know how to compactify the singular connection in this case because topology can be very complicated. So the questions that we ask about this is that how does those singular connections behave near the essential singularities? And it only appear non-trivial when your base dimension is at least three because in dimension two we have Wollambake's removable singularity. Let me give you a few motivation for asking this question. Originally, this is motivated by Donaldson and Thun's work on singularities of a K-Li Einstein matrix. The second motivation is that it helps understand the compatibility of modular space of Hermitian-Yamlis connections that I just described. An elusive modular space usually carries rich geometry in general and has very important applications. One of the famous application is Donaldson's non-vanishing theorem. One the base dimension is two. About the compatibility of the modular space. So a good description only exists when the base is projective. And when the base dimension is two, this is due to Li-Chun. In higher dimension, it's due to Grapp, Sibley, Thoma and Richard. So in this case, the at-break geometry comes in a very essential way. Because in that case, like what I said, they can control the number of singular points. Like in the examples that I just described. Another motivation to ask this question is it provides a model case for starting gauge theory over manifolds with special hall on me, like G2 spin seven. Okay. Now let me talk about the local model that we will focus on. So first, we fix a reflexive shape, a bundle with co-dimension three singularities over the uniball. Now we fix a calor metric so that it can be written in this way. This omega zero is a standard flat metric. Now only the shift E will fix an admissible Hermitian-Yamlis metric and a connection on E. So that means that the connection, if you define at least shift E and also the Hermitian-Yamlis equation, the last one is that you want to have control of the L2 norm of the curvature. So here we can simply mention this A without E because this E is actually is exactly defined by A. To study such type of similarity, the information we get can be divided into three parts. One is analytical information that it can get from the connection A and the metric. The second part is algebraic information that it can get from just as a shift E itself. So the last part will be to use ad-break to characterize the analytical information. Let's look at how we get the analytical information. So this is a process through zooming in. What does that mean? So basically you just rescale the base, rescale the base manifold to be CN. At the same time, you can rescale your connection and take a limit. Let me make it a little bit more precise. You'll fix a number positive number. Now you can define a rescaling map of the base in this way. Through this rescaling map, you can pull back your admissible Hermitian-Yamlis connection and you get a new one. Now by letting this Namda go to zero, passing to a sub sequence is very important. Now up to some gate transforms, you can forget about the 10s. So this is used to guarantee the convergence. After you do all these things, you can take the limit of this sequence of A Namda. So the limit now leaves on CN with the standard flat metric. So a sequence of A Namda will give you a limiting pair, A infinity sigma B. I will make it more precise later, but right now you can just view them as a pair. This A infinity is a connection. Sigma B is a sub-variety of this CN and they have very good structure. So roughly this piece of information comes from the follows. The part where we have smooth convergence, the other part is we don't have smooth convergence. So this is the information we get. And the key ingredient that we used here is the Price-Motor-Nistry formula. So this formula will tell you that for this sequence of rescaled connections, you have all to control of the curvature over any compact subset of CN. So in this case, you can apply the known analytic result to get a limit. So let me make it a little bit more precise about the limiting pair. So this A infinity is an admissible Hermitian-Yamlis connection on CN. And this sigma B in literature is really called the blow-up locus. Actually, this is named by Tian. And it will help you memorize the loss of Yang-Mills energy in the following way. So as a sequence of currents, if you look at the chain two defined by A-Namta, if you look at the limit of this one, it will differ the chain two by this A infinity. The difference is given by a integer linear combination of sub varieties of CN, of pure co-dimension two. And the least MK is an integer that can be associated to each irreducible component sigma K. So it is called as an analytical multiplicity. And this kind of structure theorem is due to Tian. And also using price to modernity formula, Tian actually shows that this A infinity sigma B are pulled back from the projective space. So what does that mean? That means that from CN you take away from the origin, there is a natural map to the projective space. Now this A infinity sigma B is just the pullback of some data over this projective space. And the connection part, you need to do some elementary modifications to make things work. And the sigma B adjusts the closure of the inverse image of the sub varieties of PN. They are all pure co-dimension two. Okay, so the conclusion that we can draw is that this A infinity sigma B is at break. And we call this pair to be an analytical tangent cone of the admissible Hermitian-Yamas connection at the origin. And there are two fundamental questions about this. The first one is the uniqueness. Because as I said earlier, this depends on the choice of sub sequence if you want to get a limit tangent cone. The second question is, suppose you know uniqueness, how is it related to the initial data? How does it depend on the data E and A? So those are two fundamental questions that we are going to answer in this talk. So the main results that we got for this is as follows. So the analytical tangent cone turns out can be uniquely determined by E. So what does that mean? That means that if you have two admissible Hermitian-Yamas connection that defines the same E, the tangent cones will be the same. So that being said, we know that this tangent cone is an algebraic invariant associated to this E. Let me introduce the first theorem that we got in 2017 and 2018 in the case of Hermitian-Yamas isolated singularity. So now we assume that locally, we already know that away from the origin, the shift E is a pullback of a homomorphic effect bundle over the projective space. So in this case, the analytic tangent cone will be uniquely determined by or canonical filtration of this homomorphic effect bundle E, the so-called Hardener-Siemann-Sachadry filtration. Let me give a remark here. So when this underlying E is poly-stable, this is proved by Jacob Wapowski style using a PD or PD approach, because in this case by assumptions, since this underlying E is a direct sum of stable bundles, so you can construct a smooth Hermitian-Yamas cone type connection just by using Donaldson-Wurlmbacher theorem. Now using this a specific cone, it can be used to compare with unknown ones and you can get a higher order PD estimate. So the uniqueness is just a conclusion. But in general, such a cone with a smooth link does not exist just as our theorem indicates because the tangent cone can have essential similarities. This is why we need to work a lot harder at that time. Okay, let me introduce the term that I used here. The first one is a so-called hardener cement filtration. So this is a unique canonical filtration associated to a bundle or more generally to a torsion-free shape. So it is a filtration consists of sub-bondles with similarities. Let's look at the first factor. I will only define that one because other factors will be similar. So the first factor can be defined as the shape. That disabilizes at least E in a maximum sense. Maximum just means that both in rank and slope. So this will give you a unique sub-shape. This is how you define E1. And then similarly, you can define this E2 quotient E1 or this E quotient E1. In this case, you get E2 and keep going. So in particular, just by definition, we know that if you look at the graded factors, they are all semi-stable, torsion-free. And if you look at the slope of this graded factor, they all strictly decreases. And this filtration is unique. To understand our theorem, we need to introduce another filtration, the so-called hardener-seaman-sashadry filtration. So basically, you just need to add more factors to the first hardener-seaman filtration. Let's talk about again, talk about this first factor. So you add the first factor E1-1 to be a stable torsion-free. And it has the same slope as this E1. Then similarly, you do induction to define the remaining factors. But here, this first factor E1-1, the choice is not unique. You have more than one choice in general. But based on this hardener-seaman-sashadry filtration, we know that the graded factors are all stable and the slope of the graded factors is non-increasing. So these are properties we might need. We will need. Now, we give in the HNS filtration. You can take the graded shift associated to this one. This will be a direct sum of torsion-free shift. So it will be boundless with co-dimension two singularities. Now for this one, you can define a quotient shift that looks like this, a W quotient of the original one. This shift will be only supported on the singularities of this graded shift. So that means that supported on a co-dimension two, sub-variety. So from this, we can extract canonical algebraic data as follows. One is that W of this shift will take home twice to make it reflexive. The other one is a linear combination of this pure co-dimension two support of this tau. And there is an edge breakaway to associate a multiplicity to each irreducible component. And I will not talk about it here, but I will use an example to explain. The only information you need to know is that you can extract canonical algebraic data from the HNS filtration. So the conclusion that our first theorem basically says that the graded least of a deal of the graded shift plus the algebraic cycle you got will determine this A infinity and sigma B in an elementary way. So sigma B will be the inverse image of this tau. A infinity, if you look at the shift, it defines, it will be isomorphic to the pullback of this one. So that's our conclusion. Let me give you an example where it can be applied. Again, you'll consider a rank two reflexive shift, a rank two boundary with essential scenarios, given as follows, obviously three, we take three homomorphic functions, the one, the two, the three square. Now this section has zero out of the origin. So the quotient shift again, where has a singularity at a point origin and one can show this E is actually reflexive. So the origin is an essential singularity. We fix A to be any admissible Hermitian-Yamas connection on this E and one can show they exist a lot of some. Just based on this resolution description, we can usually see that this E is a pullback of this underline E that lies in the following exact sequence and this underline E, as we can see, it's a homomorphic vector bongo because this one has no zero over the projected space. So in this case, we can apply our first theorem. So to apply that, we need to take a hardener Seymour-Sochadry filtration. But for this one, the filtration can be easily chosen to be as follows. You can take this O2 factor. It maps to this E. Now the quotient shift, a simple calculation, which shows that it would be the ideal shift of a point and tensile O2. So that's how you get the filtration. Now, based on this filtration, you take the graded shift, it will be the first factor O2 direct sum the last factor. So this is a piece of information that you get from the filtration. Now what is the process to determine the analytical tangent comb? So to determine that, you just first take the W of this graded shift. It would be a direct sum of O2 plus O2. Now the graded W of this graded shift, we see so, as you can see, it would be just be this O2 quotient of this ideal shift P tensile O2. So in this case, we know that the support of this torsion shift of this one is given by the point P. And just based on the W of this one, the elementary modification that will be used, we tell that this A infinity is actually flat and the blow-up locus will be the line through the origin given by this point P. So in this case, the structure of the tangent comb is clear and we get a flat connection in the limit. So from this example, we actually know that the tangent comb connection A infinity can be smooth and does not capture the original similarity. And in general, they exist in abundant examples where this shift E is not pulled back from the projected space. You can look at this E to be the corner given by this section. You choose three sections and three functions given as this one. And one can show that this E is not, it's not homogeneous in this case by starting a notion of fitting ID. So given this, in order to solve the problem in general, we need to find something like at least on the line E in our first case. And indeed, this is true. So this is a theorem that we got in 2018. So how do we get the canonical algebraic geometric data? Let me briefly explain. So here's the approach. Now our shift live on this uniball B to get something over the projected space. The natural thing to do is to blow up at the origin so that you replace the origin of the B with a copy of the projected space, PN minus one, the exceptional divisor. Now we look at the space of all possible reflexive extensions of this shift of the puncture ball across this PN minus one. So that's the same, we will focus on. The point is, if you start with given reflexive extension, if originally, if the restriction of that extension to the exceptional divisor, sorry, this should be PN minus one, if the restriction to the exceptional divisor is not close to being same stable. So that means that if you think it is not good, now we can modify it along the exceptional divisor to get another extension. It turns out, if we modify it in a certain way, it will reduce the arrow of the extension from being same stable. So repeating this process, eventually you will end up with an object that is closest from being same stable. And that is the data we can use to characterize the analytic tangent cone in general. I will make it more precise later. But now the extension closest from being same stable will be called an optimal edge break tangent cone of this sheet at a point origin. And as a conclusion is that this is unique up to some special modifications that we can easily keep track of. Let me make it more precise. So first we need an arrow function that mirrors how good an extension is. So for giving extension, you take the hardener semaphiltration. Now the arrow function will just be the slope of the first factor E1 minus the slope of the last factor. So in this case, we call a reflexive extension to be optimal. That is the closeness from being same stable. If you look at the arrow function, it lies between zero and one, a strictly less than one. And of course, I should remark that if your arrow function is zero, that means that your restriction is semi-stable. And, but a semi-stable extension does not always exist in general. And there's a modification that I used in this process is called the hacky transform. It is defined as follows. If you fix a reflexive extension E hat, you can take any saturated sub-sheaf of this online E hat. There is a natural map from your E hat to this torsion free-sheaf. Like in this case, if your underlying F is zero, this is basically the restriction map. Now through this map, you can take the kernel of this E hat prime. And one can show that this is a new reflexive extension. You can usually see it is an extension just by definition because this only changed the information of this E hat. Sorry, at least we preserve the information away from the exceptional device, right? This modification is supported on PM minus one. So special hacky transform just means that for this underlying F, when you want to apply, use it to apply the modification, you choose F to be any factor in the hardener or CMAR filtration of this E hat, of this restriction. And the uniqueness of the optimal ones is up to a special hacky transform. So roughly speaking, the picture is you start with something really bad, probably, then you keep applying this kind of special hacky transform, it will reduce the error eventually after finding many steps. Now if you keep applying special hacky transform, it will be optimal always. So for that object, we call it to be optimal. And since it is, since this kind of optimal ones differ by special hacky transform, this probably will tell us that we can just extract a canonical ad-break data just as before. That is, you take an optimal ad-break tangent cone E hat. You can take a hardener or CMAR saturated filtration of this restriction. Again, you take the graded shift associated to this hardener or CMAR saturated filtration. You take the W, an ad-breakway tell you to get a linear combination of pure connection to subvarieties. So it does not depend on the choice of optimal ad-break tangent cone. It is uniquely determined by E. So that's the information that we get from E as ad-break geometry invariance. Okay, so given this, we're ready to state the final result. So that is suppose you have an admissible Hermitian-Yamlis connection on a reflector shift E over the ball B. Now the conclusion says that the analytical tangent cone of A as the origin is uniquely determined by the optimal ad-break tangent cones of E at the origin. So the way to determine that is just similar as our first theorem. So in particular, we know that the analytical tangent cone is an ad-break invariant associated to this shift E. Let me briefly sketch the proof. So the strategy to prove this is study the so-called rescaled limits of sections of this shift E. And this is motivated by Donaldson and Swince-Walk on K-line-stein matrix, where they studied the rescaled limits of homomorphic functions. The key difference here is that compared to the study of K-line-stein matrix, we don't have the so-called Hormando technique. And also we know just from our results that not all the sections of the tangent cone comes from the rescaled limits. So you would not expect that you can prove some L2 estimate for all the sections. So we don't have Hormando technique for general sections. That's the main difficulty in our case. Let me briefly explain what does that mean by studying the rescaled limits of the sections of E. If you fix a section S of this shift E through this rescaling map, you can pull back your section. Now you can normalize the L2 norm of this section over the ball to be one. Of course, this will give you a sequence of homomorphic sections that has uniform, that has L2 norm equal to one over the ball. And the standard elliptic theory tells you that you can indeed take a limit because they satisfy elliptic equations. But the technical difficulty is that because our base is just a ball. So the limit might be trivial. So that's a difficulty. So eventually the section might concentrate near the boundary and you get a zero. That does not tell you any information. So to overcome this, there is a notion of convexity similar to the Kepler-Einstein case. It says, suppose you have a section S of this shift E. If you know that the degree, that is the matching order of this section at the origin with respect to the unknown metric, it's finite. Once you know this number is finite, the rescale limit of this S will be non-trivial. And also it will be pulled back from the projective space because as I said, our connection A infinity are pulled back from the projective space. So as long as you know your number, this degree is finite, you'll know that the limit section is also pulled back from the projective space. Okay, so in order to get a non-trivial limit, we need to control this number. And there's a key observation that we got is that this degree is always finite no matter what kind of section you choose at the beginning. So indeed, you always get a non-trivial limit for any given section. Based on this, this enables us to solve the problem intrinsically compared to our first theorem in the homogeneous case. The approach that we did in this case is that here we started with some unknown Hermitian-Yamlis connections. As I said, it's degree function, it's always finite. So we have a degree function D that comes out of this metric H. Now using this D, we can do algebraic construction to get an optimal algebraic tangent cone E hat of this E at the origin. So in particular, starting with an unknown Hermitian-Yamlis connection, we can construct some intrinsic optimal algebraic tangent cone associated to the unknown Hermitian-Yamlis connection. Because this is intrinsically associated to the metric H, the shape E, the A, we can then use at least one to characterize the analytical tangent cone. So this is, yes? So is E hat generated by those limit sections? Is that? E hat is, E hat lives on this B hat. So it's really just an extension of E. It's not in the limit. It's just in the place at the beginning before you take limit. Okay. So it's an optimal tangent cone. So the upshot is that this degree function is a well-defined function. This part we already know based on the observation. The non-trim part is that it is satisfied enough good algebraic properties so that we can construct some optimal ones. I will explain the construction a little bit more. So for simplicity in the following, I will always assume that the degree function is a fixed number modulo is the integer z. Actually, at least correspond to the assumptions that the optimal tangent cone is actually same stable. The general case can be dealt with similarly. Step one, let's construct a shape over this projective space. How do we do the construction? Now we define this mk to be the space of sections that has degree strictly bigger equal to mu plus k. So let's give us a space. Now we can take the gradient module as follows. It's mk quotient mk plus one, then you take direct sum. And the technique point is to show that this gradient shift, sorry, this gradient module is a finitely generated torsion-free gradient module over the ring of homogeneous polynomials. And in particular, it defines a torsion-free coefficient of the projective space. And actually, this finite generated property really comes from the fact that we already know the tangent cone is at break plus some technical difficulty involved with the degree function. We can show that. And this is the technique point that we overcame in the paper. So after you get this, you can get a, you can define torsion-free shape. It's on the line E hat. And at this point, we don't know, we don't even know what is the rank of this shape, actually during this process, there is an analytical technique point that I want to point out. So, because just imagine if you start with two sections and do this rescaling process, it might happen that at least two sections, if you do convergence, if they converge to the same thing, when you do rescaling. So the angle become zero, you get one section. So in order to overcome this, we need to do this Grunge-Mid Osomalization so that during this process, you want to Osomalize the two sections. But again, the difficulty is that you don't know whether you can get a non-trivial limits after you do this Osomalization. So that's the difficulty we overcame. Also, even you know that you get a non-trivial limit, you don't know the degree of the limit section. So this is a technical point, a really technical point. That we need to deal with. So after that, the next technical point is that since we already constructed something of the exceptional divisor, the next step is to construct an extension of E hat so that it really restricted to the shape that you construct on the exceptional divisor. So in particular, we know that the shape we construct has a good rank equal to the rank of the original shape. And during this process, again, the reflective property of the extension is very technical. So after you have done the construction, we basically get an extension of this E. And based on our assumption, there is one thing we need to show. We need to show it is optimal. So that means in this case, because our assumption, we need to show that it is semi-stable. And to solve this, in this case, it really comes from the fact that not just this E, we can also do a construction related to the dual of this shape E. Like if you look at the admissible Hermitian-Yamets connection associated to the dual shape, like the dual of this bundle, you can get a construction. Now you do pairing of that one. It will tell you the information about the semi-stability. So again, this is another technical point. And of course, without assuming that the degree is a fixed number modulated as an integer, this process can only give us an optimal at break tangent cone. So that's a construction. Eventually we'll end up with something optimal, intrinsic associated to this shape E. Okay, now we can finish the proof using this intrinsic optimal at break tangent cone. So by the construction, if you start with a shape S of this shape E, it can be naturally identified with section S hat of this optimal at break tangent cone, but has certain vanishing order along the exceptional divisor determined by the degree. So indeed, if you start with section S, you get something at break over the exceptional divisor. So that rough idea is that when you take the analytical limits of this section S, you can also take the algebraic limit of this S hat at the same time. Since in this case, our E hat, our restriction is semi-stable. Let's look at the two pieces of information that we get. So analytical side, you'll have limits of the riskier sections that homogeneous pullback from the project space and help you detect as an analytical shape defined by this A infinity on the algebraic side. So when you do this Grunge-Meet of summarization, at the same time, you did something to the corresponding algebraic sections when you do restriction to the exceptional divisor. So basically you get a sequence of elements in a certain code scheme given by this restriction shape. Now on the algebraic side, because this leaves in a code scheme, by passing to a sub sequence, you can actually take a limit, take an algebraic limit of this QI. That will give you an algebraic limit Q infinity. But in general, the limits you get in the code scheme is can be very bad, like you don't know what it is. So the naive idea is that since you get an analytical limit, you also get an algebraic limit. So just you want to connect them. So you want to identify them. Indeed, this is true, but very technical because we are working with different base. One is the exceptional divisor, one is four. So we want to connect these two limits. It turns out, even though it is technical, but it is true, the identification of the algebraic and the analytical sections can help you realize the following. You can realize this algebraic limit, you'll get as a torsion-free coherent sub-sheaf of this analytic one. So indeed, your algebraic limit can detect a lot of information of the analytic one. And furthermore, this algebraic is actually a sub-bondle of this E-infinity analytic outside the code dimension two set. So based on this, we can conclude that our E-infinity analytic is actually the W of some algebraic ones. At the same time, because of this relation, we know that this algebraic limit is not so bad. It's a torsion-free and same stable sheaf. So the limit we get in the code scheme is well-behaved, that's a point. So after this point, we transform our problem into a algebraic geometrical problem for which the conclusion is already known. Okay, so on the algebraic side, the limits can be actually rid off from Graben-Tomac's results on compatibility of modular space of semi-stable sheafs. So they construct a modular space and mu SS, this compactifies some space of semi-stable sheafs over projective manifolds, which is given in your market class and fixed determinants. The point is you have a map from the semi-stable sheafs in the code scheme to this modular space. Using this map, in our case, if we look at the sequence of elements in a code scheme, through this map, actually the image inside this modular space, it will be a fixed point. So in particular, we know that this q-infinity and qi are the same point in the modular space. The key property is that we already know this q-infinity is semi-stable, that comes from the analytical information. So q-infinity and qi are the same point in the modular space, in this modular space. And from the geometry of this modular space, we can conclude that this q-infinity and qi gives the same w of the graded sheaf, same cycle. So in particular, we know that the analytical sheaf we get is a w of this graded sheaf, and so does the cycle, they also coincide. So yeah, so that's how we solve the problem. And after this, after you identify the limited sheaf, the identification of this blow-up locals follows from a single blockchain formula by Sibley and Richard, but since here, we assume that the restriction is semi-stable. In general, this can be dealt with inductively because we can actually construct m such a hat, where this m, we denote the number of the possible images of this d. And actually, this kind of, all those optimal tangent cones are related by special hacky transformers, so. And you can use them to find other factors. Okay, so that's all what I want to say. Thank you. All right, thank you very much. Show me how. Are there any questions? So the analytic tangent cone never sees the different hecking modifications. I mean, the different, the optimal, you say you have different optimal algebraic tangent cones, but those never get distinguished by the analytic one, right? Okay. So you mentioned that you have different... Yes, you're right. So the point is this optimal ones, they all give you the same upgraded sheaf in a cycle. Yes, it does not, yeah. So do they somehow get distinguished by, again, by the limits of these sections? I mean, in principle, is that what's going on? You get, I mean, so in other words, you get different sub-sheafs of the analytic limit, but they have the same quotient of a torsion sheaf basically. Like in that, if you, after you pass to the limit, you don't really see the difference in this case. Like you said, you mean, if you look at a sub-sheaf generated by this limiting sheaf, by this limiting sections, then corresponding, you look at the difference. So the limiting sheaf, and it's our original sheaf, they have the same graded, higher than our CMOS filtration, this one. If you forget about the extension property, forget, like use them as direct sum, I don't see why it can make a difference. If you don't have a problem set, you always get direct sum in this case. So originally, you can get different extension. So it might not be able to tell the difference in this case. Anything else? So if not, then let's take it from now again for the beautiful talk. Thank you. Yeah, and really nice, really nice results as well. All right, good. So I guess see you guys, when is the next talk in two weeks? Jacob. I think so. Is that the Conor Moone or it could be? It could be next in two weeks anyway. Okay, well, see you guys. You, thank you, Shamiya. Hey, thanks. Thank you very much, Shamiya.


We need fear on roger.  I shipped him anyway. Nice. I guess I get right behind Again We ship fishing. I'll think it It's over you go. Yeah, line me drinking Yes, thanks. I risked trying to move that piece. That piece. That piece. Yeah, it's gonna be hard.  He's evening.  Yeah Can you see rock?  We have to get double fair We can't just run it. Yeah, sure. I have luck like we need to pressure the rogue man. I swear He will how does he get out of everything man? What is this? We're breaking CC Hit the bone Me for me. Just say away. Say away. We're gonna start.  It's so lucky. We're knowing to play mage Precise him. Yeah, I need to do you keep them.   No, I mean you can try about that's the prayer. That's it Can you wander cloak yet? Game is still broken. Can I get the eye just drink please can't drink cuz a bug. Okay. This is the only thing He's on the left of two left to two left to two I've got a man.  I have nothing.  He can just leave like he can't get money back I'll try to get combats.  Can you go to the lucky? Yeah?  Oh fair mate. Yeah, so I wrote a fair priest world nice Yeah, I'm gonna waddle away in a sec He wasted it I'm coming in coming in It's gonna defend my box I got a regular Yeah, if you get it's huge Sapple me sample me Yeah, I'll go by my pets Can you re-shoot? Yeah, don't something I can't fit. Yeah, I'll try getting in fair. Yeah, sure No, no, I'm doing damage you Priest got out. I don't know how you like and my fiend got slow. This is hyper bad. No, I don't know what priest guy Burning priest priest burning to Blind on me for blind you need to block it be ready. No, no dance. No dance Yeah, it's good, it's good. He cloaks as well. He wants to sound you need to live the sound have no trinket. It's all you I'm gonna spam tip on the right now I will PS He's no click go go go go everything the spelling is forward He got he got mine off first through all buffs nice talent max Yeah, he doesn't have it.


I think theoretically we were worried about threats and now we understand why there has been so much of a concern, David. Absolutely. And this is horrifying. I mean, activism has its place, of course. Speaking out has its place, but to threat a Supreme Court justice and his family outside of his home is beyond the pale, cannot be tolerated. Every politician has an obligation to stand up, condemn this, and to do something about it. Hey, YouTubers, welcome back. Yeah, it's almost like they know they've stepped in it and are somewhat trying to walk it back, but it's not quite what it looks like. Take Breonna Keeler's opening statement there, where she pretends like CNN and the others had no idea that there could have been violence from these people who have undoubtedly proven their willingness to use it. CNN headquarters itself even came under attack by left-wing mobs just like this, but still play dumb. The entire thing was predictable from the very start, when a left-wing group called Ruth Senna's released the dresses of the judges with instructions to, quote, rise up to force accountability using a diversity of tactics. A clear call to action. I'm also noticing a distinct lack of inciting quotes that came from Democrats before this happened or any attempt to blame any of them by name for any of this, as we would expect. So yeah, I'm already not buying this, but let's continue after this quick capitalism break for PrepareWithDroneTech.com. Friends, temperatures aren't the only things rising. Gasoline prices, food prices, tensions throughout society, global conflicts, supply chain breakdown. You name it. Experts say the looming global food crisis will be worse than ever. What should you do? Go to PrepareWithDroneTech.com and get your long-term emergency food storage from MyPatriot Supply while you still can. MyPatriot Supply is America's largest preparedness company, with millions of satisfied customers me included. Act quickly and save $150 on a three-month emergency food kit. These kits provide breakfast, lunch, dinners, drinks, snacks, totaling over 2,000 calories a day. So go to PrepareWithDroneTech.com and save $150 on your three-month food kit. That's PrepareWithDroneTech.com. Get your family's emergency food while there's still time. Go to PrepareWithDroneTech.com. And the truth is that a lot of people on the left who are in political power are being so hypocritical about this. They lecture us all the time about the excesses of the right. Oh my God! I was wrong. CNN finally recognizes what I and many others have been talking about for years. They finally see the light. They're really going to hold their own side accountable for accusing their political opponents of doing all the things that they're doing. They're actually going to hold both sides to the same standard. Wow! I can't believe I'm actually seeing this. And the truth is that a lot of people on the left who are in political power are being so hypocritical about this. They lecture us all the time about the excesses of the right, including Donald Trump on January 6th, fomenting mob violence.  Of course! Wrong! Wrong! Wrong! They finally throw out a name to blame here and it's not Schumer or Pelosi or any Democrat, but Trump, of course, baselessly accusing him of fomenting mob violence. Oh really? And how did he do that exactly, since you provide no examples, by telling people to go march peacefully and make their voices heard? You know, Trump actually had no idea what was going on in the Capitol and only found out from a second hand source, because he was at a rally that was a mile away and completely separate from what was going on at the Capitol. Surprisingly, even MSNBC admitted this last night. Just the key point that, yes, there was a pro-Trump rally at which the President spoke and we can absolutely talk about all the things the President said there. But the idea that that rally is the thing that got out of hand and not somehow resulted in the breaching of the Capitol, that rally was very far from the Capitol. And the people who, as you say, did the initial breach that allowed everybody else to come in, they never even went to that rally. Oh, David, how exactly did Trump foment mob violence? Here's a question for the comment section.  Down to the Capitol and we're going to cheer on our brave senators and congressmen and women and we're probably not going to be cheering so much for some of them. Because you'll never take back our country with weakness. You have to show strength and you have to be strong. I know that everyone here will soon be marching over to the Capitol building to peacefully and patriotically make your voices heard. And they're taking away fundamental rights. I want to tell you, Gorsuch. I want to tell you, Kavanaugh, you have released the whirlwind and you will pay the price. Meanwhile, does Gregory or anyone in the media name Schumer or play either of these clips for that matter? No! Nope, just like the very fine people quote, they purposely edited it to deceive the public. And they're definitely not going to play any clips of Democrats saying this stuff because in the end, the media is just as accountable as they are. I think to David's point, too, there's no question. Yes, peaceful protests are part of being American, but there is a responsibility for people in leadership positions to talk to people who believe in them and who elected them about where is the line and where should we be drawing that line, especially when we're seeing political violence seep into more and more of our conversations, whether it's January 6th or what's going on with Brett Kavanaugh here. They just cannot help themselves, but to just keep deflecting and rewriting history. Her two examples of political violence seeping into our conversations were this in January 6th. How about the Democrat rights that seem to occur after every election loss they've had since the year 2000? How about the mobs of Democrats who were carrying Mexican flags and attacked Trump supporters before the 2016 election? Which, by the way, was actually facilitated by the Democrat, San Jose mayor and police forces. The mayor even mocked the victims afterwards. That's just one small example. Obviously, we all watched years worth of violent Democrat rights across the country. And these occurred in most cases based on lies and myths promoted by the Democrats and their media, including CNN. And protests, you know, maybe that's the place to do it. That's clearly not where Democratic leaders are right now, and I think it's because of their base. Yeah, it's definitely the base. Just look at what the Democrat base is saying about this. I don't think Brett Kavanaugh's family should be put in jeopardy as a result of his decisions, but I also think my family shouldn't be put in jeopardy as a result of his decisions. Brett's family chooses to be his family. Your family doesn't have a choice when it comes to getting affected by Brett's decisions. I don't have that much sympathy for his family, who probably believe the same things as him and enable him in the harm he is bringing on other families. I don't think Brett Kavanaugh's family should be safer than mine. Given their stance on gun control and the GOP reaction to mass shootings, it's kind of hard for me to get super worked up over this. Well, I gotta go get hammered and puke my brains out so I can forget about all of this. If you'd like to support this channel, you can find links to my Patreon and Subscribestar and the description or pinned comment, as well as a link to my new Gilded server where you can come hang out, discuss topics, watch live streams, get memes, whatever. Come and check it out. Like I said, all those links in the description or pinned comment. If you enjoyed watching my pain, hit that like button, share this video and leave a comment. Thanks a lot.


This study reports on the fabrication of lanthanum-doped zinc oxide, la-doped ZNO, films using sol-gel and spin-coating techniques, which exhibit high transparency, UV-blocking ability, and narrowed optical band gap. The ZNO, for 0.0 at .% la sensor showed the most significant gas response to carbon dioxide, CO2, gas with a value of 114.22% and a response time of 24.4 s and recovery time of 44 s, making it suitable for various industrial applications. The study also assessed the effect of humidity, selectivity, reusability, repeatability, detection limit, and limit of quantification. This article was authored by Khalid Abdelkaran, Rana Saad, Adele Mlsate, and others.


how are you guys doing? Girl, this hair is, it is big now. It is big. So I am behind on wash day. Girl, what else is new? I'm a couple of days behind, weeks behind on wash day. And so I figured, okay, let me go ahead and get this together. I need to really, really take the time, give my hair some TOC.  About two washes, two washes, I'm missing a pre-poop. So I got me some products in the cabinet that I took out, some stuff I forgot I had. We have an Odie but Goodie. We have Aussie's three minute miracle moist deep conditioner. I typically use this as a deep conditioner. I don't think I've ever used this as for a pre-poop. So I'm going to be combining this along with some Amla oil to help detangle my hair. Now I am not washing my hair today because it's already one o'clock. It is done. I'm going to wash my hair first thing in the morning. All right, you guys. So let me go ahead and start sectioning my hair off. Little. I'm going to smooth that through. As I was saying, I'm going to start off with a little bit of product because I have a lot of hair to go through. Detangling comb. Go through my hair. I don't think that's really detangled. I'm just saying. Okay, with a pick. Yeah, see? Look at that. Nope. And we're going to just, and so that's what we're going to do. I think I'm going to pass on the Amla oil because it's a little little fragrant. All right, you guys. So I'm just going to continue to section my hair off and apply the product. So, y'all, excuse me. So I'm filming a chitchat video. So I am yapping away while filming this particular tutorial. So anyway, like I said before, I have not used this product in a while because I like to use my Tried for True Swab or V05. Let me tell you something. I am cheap. I'll be the first to tell you, especially when it comes to rinse out conditioners or shampoos. Now, I will say that every now and then I will purchase a TGIM moisturizing shampoo because I just absolutely love that product and it's just really good. Or the eating body's worth shampoo. But when it comes to a rinse out condition in which I don't even use that much anymore because I often just deep condition in my hair, I'm not going to spend no more than three. But girl, I say all of this to say it's been a while since I've used this particular product, but it's working really really well. I forgot how great it was. And I personally love it as a deep conditioner, but it's working really well as a pre-poo also. I am officially done with pre-pooing my hair and kind of doing a little detangling. Let's take down one section to see how I think this possibly did really, really well. Let's just see. Look at that. Absolutely beautiful. Girl, this is a style.  Awesome. So as I said, I don't think I'm going to go ahead and use the Amla oil. I think that this was more than enough. It was very, very moisturizing and I'm very, very happy.  That is it you guys. Thank you so much for watching and thank you as always to all of my new subscribers. Take care. Bye.


My name is Johannes. I am a software engineer at Grafana Labs. The team I'm working on, our mission is it to make Grafana users successfully with Open Dilemetry instrumentation. I'm involved in the Open Dilemetry project for several years now. I started out as a contributor to the Open Dilemetry C++ project. Currently, I'm mostly focusing on Open Dilemetry semantic conventions and in particular, semantic conventions for messaging. That's also what prompted me to give this talk. There is a lot of pain around monitoring asynchronous workflows. Way too much to put it all into this single talk. It would be hard to bear. So, what we're gonna do here, we are gonna focus on a single pain point that is the centerpiece here. Then, first, we will look where does this pain come from. We will try to understand the source of this pain. And then, at the end, we will look out for hope. Is there any hope to alleviate this pain? We will talk mostly about distributed tracing because this pain point that I picked, it relates to distributed tracing. Also, we will talk about distributed tracing here because in my experience, it is the area that causes the most pain when it comes to monitoring asynchronous workflows. And to define what we mean by asynchronous workflows in the context of this talk, we define an asynchronous workflow as a workflow that involves asynchronous communication between different services. There can also be asynchronous communication inside a single service, inside a single process. And while many of the things we will see here also apply to those scenarios, it's not what we are primarily focusing on. These asynchronous communications between different services, there are also the terms messaging or eventing used for it.  So, let's dive in. Let's talk about this integration and let's look at some characteristics of asynchronous workflows. What do we see here? Firstly, we see that apparently I didn't go to art school, but let's leave that aside. For a moment, we see a little comic here, a little workflow described, a little story. We see two actors involved. Somebody pushes their bike to a bike mechanic and says, I need my bike repaired. The bike mechanic says, sure, I'll text you when I'm done. Then the next day, the owner of the bike receives a text message that says the bike is repaired. He says, great, I will go there and pick it up right away. And he goes there, gets his bike and pays for the service that he receives. Quite a boring story, you might say, not much happening, not very spectacular. Let's try to visually graph what's going on here. Let's put all this on a time axis that already reminds us lots of a lot of gantt charts now that we are used to when we look at distributed traces. We see black boxes on this time axis. Those are actions operations done by the owner of the bike. We see gray boxes. Those are actions operations done by the bike mechanic. So we start out here. The owner of the bike comes, requests a fix for the bike and the bike mechanic accepts the bike. Then for quite a long period of time, nothing happens. And after a day, the mechanic fixes the bike, sends a message. Again, short period of time, nothing happens. Then the owner of the bike receives the message, picks up the bike and a payment is processed. And what strikes us here is that there are quite long periods of time where nothing happens. Actually, during most of the duration of this workflow, nothing related to this workflow happens. Why is that? That is because of a phenomenon that we call temporal decoupling. Here we see two tasks connected, two times two tasks connected with a dotted orange line. Those are tasks that are logically related, but they are temporarily decoupled. What does that mean? Fixing the bike, that's a task that depends logically on accepting the bike. We can only fix the bike that we accepted before. Same for send message, receive message. We can only receive a message that was sent before. However, those tasks are temporarily decoupled. Their duration doesn't overlap. They are disconnected on our time axis. Sending a text message is a very good example for this because if we look at the characteristics of temporal decoupling, here we see that producers and consumers of messages, they aren't restricted by each other's availability and they don't have to run concurrently. If we think about the text message, we can send somebody a text message and we are not restricted by this other person's availability. If they are in a meeting or they have the phone turned off, they will receive the message later. This is an example of a synchronous communication and probably decoupled. If we think about calling somebody, then we are restricted by this other person's availability. If the person is in a meeting or the phone has turned off, he doesn't receive the phone call, communication doesn't take place. This is an example of synchronous communication, those parties have to be available at the same time. This temporal decoupling allows us to increase the reliability and resilience of our workflows. I will not go much deeper into that here, that would be a talk on its own, but just take my word for it. What is important for us is to keep in mind or to look to see here that temporal decoupling causes disintegration. The temporal decoupling is the reason why our workflow here is basically three disconnected chunks, three chunks that are disconnected on our time axis here. With that in mind, let's move on and let's see what pain this causes us. And the pain comes in when we ask, how can we model those asynchronous workflows? The way to get and to end inside in our workflows is we use distributed traces. And here we see our workflow as a distributed trace. We put it all into a single trace, we have those operations that we saw before, each operation is modeled by a span or part of a single trace here. Again, we see these big gaps in our trace, but we already know temporal decoupling, it's a feature, not a bug, we know what's going on here. However, let's increase the complexity just a little bit now. Let's assume that we have a really good bike mechanic who can fix three bikes at once. We see that depicted here, we have an operation, fix three bikes in one batch. During this operation, three messages are sent out when each bike is fixed and we see the owner of the bikes receive the message and they pick up their bikes. This already is not a very complicated workflow, way less complicated than workflows that probably many of you can count out there. But we already see that it gets quite confusing looking at this picture, it gets harder to see what's going on. We can try to help us a bit again by connecting our logically related but temporarily decoupled operation that helps us a bit to get a better oversight but still it requires that we already know quite a bit about what's going on here. And often when we look at traces, the traces should actually tell us what's going on. So we have a problem here with complex workflows. What alternatives do we have? Well, at this point, I wanna talk a bit about ways we have to correlate spans in a distributed trace. We essentially have two, we can correlate spans via parent-child relationships and we can correlate spans via span links. A parent-child relationship is a one-to-end relationship. One span can only have one parent, but one parent can have several children. A parent-child relationship is also what constitutes a trace. All the spans in a single trace are directly or indirectly connected or related by parent-child relationships. Span links, on the other hand, are end-to-end relationships. One span can have any number of link and a span a link to can have any number of other links. Also, span links can go across traces. So a span can link together, a link can link together spans from different traces and thus a link can link together different traces. So let's try to utilize that. Let's utilize span links and let's see if that helps us in our modeling challenges. Here, we split up our initial tracing tool. The first trace starts with requesting the fix for the bike and ends with sending a message to the bike is fixed. The second trace starts with receiving the message and ends with the payment being processed. And the send message and receive message spans to connect together via a span link. We can push this further and now separate our trace another time. And now we have three traces here. And here we start to see something really interesting. We now see that each single trace models a synchronous part of our workflow. So with this modeling option, we got rid of those kind of awkward time periods where nothing happens. Each trace now represents a synchronous chunk of our workflow and those traces are connected with span links. Let's again bring our talented bike mechanic in and let's see how this solution scales. Well, looks a bit better maybe. We have again the fixed three bikes, three messages are sent, the send message spans link to receive message spans which each are part of a separate trace. And what we also see here, we have the upstream link to the accept bike. This is something that we couldn't model with the single trace solution because as we said, a single span can only have one parent. We cannot have three parents. We cannot model those fan-in operations with span links we can. So we can zoom into a single trace here and look at the synchronous part of our workflow and we can zoom out and look at all those workflows and all those parts of the workflow connected together. So where does the pain come in? We saw that we had quite a simple scenario here but we already came up with three different ways to model it. That in itself is the first pain point. There is no established best practice. There's lots of different options. So people get confused. They don't know what to do. Which option should they pick? If they go for the single trace solution, we saw that they can end up with large and confusing traces for complex scenarios. We also saw that it's impossible to model certain workflows. We saw this with those fan-in workflows. If we go with multiple traces, some might say that's an overkill. If I can put everything in a single trace, I should do that. Also, a pain point that we have here is that we have varying levels of support for span things from different tools and vendors. Some tools have great support. They allow you to visualize link traces in one Gantt chart. You can expand and collapse traces. Other tools allow you to navigate from one end of a span link to the other via hyperlink and vice versa. Again, other tools allow you to follow the link but only in one direction and you cannot go into the other direction. This causes pain because we would just have different user experiences across different tools and vendors. And very importantly, if we break up our traces in this way and use span links, this doesn't just break up our traces, this also breaks existing and established sampling solutions. Because those sampling solutions are built on the premise that a trace contains our complete workflow and they aim at giving us a sample of complete traces. They don't give us a sample of complete linked trace casters. So with this approach, with multiple linked traces, we are much less likely to get a complete picture of our workflow. And last but at least here, we could say, let's just embrace the plurality and let's use both options, sometimes this, sometimes that, whatever fits best. That also comes with problems because we have a lack of consistency that will impede vendors to implement good support for messaging scenarios. And we also run into scalability challenges because most workflows start out simple. Then we might tend to use the single trace modeling solution. However, as our workflows mature and scale, they get more complex. So maybe those simple solutions break at some point. We have to rewrite our instrumentation. And in the worst case, we will even break our existing observability workflows. Lots of pain. Is there any hope out there? Let's try to call standardization to the rescue. And where does this standardization happen? It happens in open-dynametry semantic conventions. You might have heard about those. Those semantic conventions, what are they? They basically define span names, attribute names, and very importantly for what we look at here, span relationships, and they define the meaning of those names, attributes, and relationships. So many conventions don't just cover traces. They cover all observability signals, but we, for our purposes here, we will focus on traces. There's also an open-dynametry messaging workgroup that I'm part of, as I mentioned before. And this workgroup aims at coming up with stable semantic conventions for messaging, for traces, and for metrics. And it's our goal to provide the stable semantic conventions for messaging this year, 2024. We also put that on the open-dynametry roadmap for 2024. So we are under a bit of pressure to deliver something here. So how can those semantic conventions now help us with this problem that we picked before? We again here see a part of our workflow with some small changes in terms. We don't say send message anymore. We say publish because that conforms to semantic conventions. And we see here also in brackets, span types. So our publish span is of type producer. Our receive span is of type consumer, and both of them are connected with a span link. And this is exactly what semantic conventions for messaging require for modeling such scenarios. They require a producer span, a consumer span, and a span link in between them. What does that give us? Well, if we have compliant instrumentation, then whenever we look at the resulting traces and we see a producer span and a consumer span and a link between them, then we know that there is a message passed from one to the other via an asynchronous communication channel. We can even make sense of the time between the publish and the receive span because this is the time that this message spent in queue. This is quite an important metric in the messaging world. So this is our invariant. This is what semantic conventions require from compliant instrumentation. However, semantic conventions don't tell you or don't require putting this into a single trace or modeling this using multiple traces. We can put all this into a single trace. Then we end up with a span link inside a single trace. We can also model this with multiple traces. Then we have a span link that connects different traces together. What do we achieve by this? Well, what we achieve here is that we have an invariant that's the same across all scenarios. And on top of this invariant, we preserve lots of flexibilities for instrumentation authors and for users to find the right modeling options for their scenarios. Simple scenarios, we can still put into a single trace. Complex scenarios, we can split the trace up and we always have this invariant that tells us when asynchronous communication happens. Let's look at our paint points again and let's see which of the paint points this solution solves. We've flattened out this list and we go through the points one by one. No established best practice? Well, not really. We have open telemetry semantic conventions. We have some conventions encoded there, so we have a place to go for looking for established best practices. We can check this off. Large and confusing traces for complex scenarios that doesn't need to be, we can split our traces up as we saw. Impossible to model certain workflows. Not really. We saw we can even model those fan-in scenarios. Span links are a very powerful tool here. Varying levels of support from tools and vendors, this is still a paint point that persists. We in the messaging work group, we deliberated for quite some time whether we should prescribe the usage of span links or not because of this reason. However, in the end, we decided that we are gonna embrace span links because we also think that stable semantic conventions to prescribe the use of span links and instrumentation out there that uses span links, this can act as a catalyst for tools and vendors implementing better support for span links. We have a bit of chicken and egg problem here because there's no good support for span links because it's not widely used and it's not widely used because there's no good support for it. So we want to break the cycle. Overkill for simple workflows, not really, we saw when we can, we can still put everything into a single trace. Breaks establish sampling solutions. I have to say this is the biggest paint point that maybe remains because we don't currently have a solution for that yet. If we pack everything into a single trace, well, then we can use established sampling solutions. However, if we use span links, we are unlikely to have a complete picture of our workflow. Of course, we can sample 100% but we also don't want to do that. So here is a paint point that remains. Lack of consistency, not really, we have our invariant defined that's the same across all scenarios and we even preserve some flexibility on top of that. Scalability challenges, they will always be there but what we now can do, we can actually switch from single case modeling to multi-trace modeling without hurting our invariant. So if we implement workflows, observability workflows that depend on this invariant, we can flexibly change our modeling. Well, now you might say that's all nice theoretical information but what does it mean for me? I'm in pain, what should I do? So advice that I would give for you as practitioner. Number one advice I would say, rely on open telemetry compliant instrumentation libraries. The way how you use instrumentation libraries, it differs from language to language but in all instances, there's a way how you can rely on instrumentation that somebody else provides to you and why should you do that? Because authors of hotel compliant instrumentation libraries, they go through great pains to implement those semantic conventions, to conform to those semantic conventions and they do it so that you don't need to do it. So benefit from the work of others if you can. If for some reason, you don't want to use instrumentation libraries or you cannot use instrumentation libraries, then write instrumentation that is based on standards even if those standards are still draft standards. Why? Because you benefit from standardization because other people put lots of thought into those standards or so vendors and tools are very likely to support those standards and especially draft standards and experimental standards also benefit from you using them because the more people adopt those standards, the more impetus there is for vendors and tool developers to support those standards. If you need, if you want to avoid any possible turn, then I would advise you to wait for stable semantic conventions for messaging. They are coming, they're coming this year and we are now in the last phase before this declaration of stability and that's also for us the last opportunity where we can actually break things. We don't do it light-hearted, but if we see something that will really hurt us in the future, then we will change and break it now. So if you want to avoid this turn, then wait a little bit. And if the pain is really getting to you and you say that all goes much too slow for me, then come and help us. Help us to define and establish an industry standard in that field. The Open Dilemma Tree Messaging Work Group is a very active group, but it's also a quite small group and there is lots of work to be done. We already talked about instrumentation standards here for traces, we are currently working on a set of standard metrics for messaging scenarios. Then we want to push instrumentation libraries that implement those instrumentation standards in the form of semantic conventions and then we are at a point where we can declare initial stability of semantic conventions. But then we're not done. There's lots of other work waiting for us. For example, context propagation for messaging is also an area that's in dire need of standardization. We have something here. I listed three examples. We have first public working graphs in the W3C space for MQB and MQTT, two very popular messaging protocols. However, those emerging standards are somehow stalled in their emergence. Those rafts are two years old. There's not been much activity in those two years, so we in the messaging work group, we recognize the value of those standards and we want to push those. There's also something in the space of cloud events. Cloud events for those who don't know it, it's a CNCF project. It's a standard for describing events. There is a distributed tracing extension for cloud events which describes context propagation over with cloud events and the members of the messaging work group are involved there. They're in touch with cloud events folks to push this forward.  We from the messaging work group, we want to work together with the open telemetry sampling SIG to come to a good solution for link-based sampling because I think that is what still will hurt many practitioners the most.  I'm personally not sure how far we can standardize there but what we definitely want to do, we want to have a good way to seamlessly integrate broker instrumentation with producer and consumer instrumentation. So if you want to get in touch with us, with the work group, the best way is through CNCF Slack, Hotel Minus Messaging, that's where folks of the work group hang out. Johannes Tux, that's me. Slack, by the way, is a synchronous communication. If you prefer synchronous communication, we also meet weekly. Our work group meets each Thursday, 5 p.m. central European time, not this week because of cube combat next week. We always welcome people who come by who want to give us their opinion or just tell us their story. And last but not least, you can also send us issues on GitHub. With that, thanks everybody for coming. Thanks for going through cycles of disintegration and pain with me. And I think we have some time left for questions if there are any. I think the microphone is on, it works. Thanks Johannes, great talk. I have a quick question for you. So I actually wrote down, to that to work, we need to ensure context propagation. Yes, perfect. So you have any ideas or any insights, any thoughts on how to implement that on cases where the context propagation is not possible. So for instance, in Brazil, there is a payment process that is called peaks where the transaction goes through a central bank and then comes back to the bank that sent the request. And this central bank doesn't allow any specific or hotel headers. So there's no way of sending. So the only way to do that would be linking the transaction ID somehow and from the caller to the rest of the call. Any ideas on how to do that without relying on the backend to kind of query this transaction ID or something like that? Great question. So the question is context propagation. How do you propagate context if your broker or protocol doesn't support that? So I think the long-term solution will be to push brokers and also like this bank that you mentioned to give you some way to propagate context because it's important, observability is important. The short-term solution, I think the only way we currently have this and I see that people doing is just somehow integrating this context into the message. Cloud events, for example, does that. Cloud events defines a payload. The whole cloud events thing is part of the message payload that you send, a JSON payload. And what cloud events does is in its specification, it just requires to put the context inside this payload. So you put it inside this payload, it's part of the message and you send your message then to your broker or intermediary and the producer receives the message and then can then unpack it and interpret this context. It's not an ideal solution, I think, but it's as good as we can do in those scenarios now. But I think the long-term solution is to create, to increase the awareness and to have native ways to support that. And I think those MQB and MQTT standard drafts our first step into that direction. Hi. Thank you for the talk. I understand you didn't want to define whether we should only use the link or make it one single trace. What are the instrumentation libraries that are in the country supposed to do? Are the consumers gonna have to define it per library or how are they supposed to handle this? We from the semantic convention side, we don't make any assumptions about this. And this is something that we leave to instrumentation authors to decide. So what I would expect is that I think here we cannot prescribe like one solution because requirements are very different. This differs for different messaging systems for different use cases. So maybe instrumentation libraries will provide you with some configuration options around that. Maybe some for whom it makes sense. They will, by default, if there's no batching involved, put everything into a single trace and thus give you this experience. And only if batching is involved, they will break things up. I don't have an answer here that covers all the cases. I can only say this will be instrumentation library dependent and we trust instrumentation authors here to come up with good and solid solutions that will hopefully help everybody. Okay. Thank you. That's my turn. Thank you for your talk and your work. Usually how we implement consumers, we read a batch of events. It's not just one event. We read 20, 50 events per one time to optimize the network and other stuff. And for each event, we have different trace IDs. And usually we have an operation, like a read batch of events. And the question is what trace ID should we assign to this operation? Because then we want to visualize our data. We have like 20 traces with published events, consumer events, and we have these synchronization operation when we read a batch. How does it come with the span links? Well, I think that's such a scenario you're talking about. We have a fan-in scenario here. So we have our fixed three bikes and here it's just a small batch, it's three. But with span links, basically you can link to all the three upstream traces that constitute this batch. This looks pretty good on the modeling level here. However, we still have challenges here and maybe that's what you're looting to when it comes to visualizing that. Span links are a very great modeling tool on the abstract level, but how we visualize this, I think we also, it's a question that we in the semantic conventions work group cannot solve, but we rely on tools and vendors to implement good support for this so that you as a user can kind of seamlessly see what kind of messages are coming in here and where are they coming from? It's kind of a usability experience that we in semantic conventions cannot solve. We can just make it consistently modeled, but this is something that then observability tools and vendors need to provide a good solution for you. Thank you for a great talk. Yeah, the each span link is often associated with a common dependency. Sorry, I'm here. Common dependency. So in your example, it was a bike. So there's something that is producing a bike and then something else that's consuming the bike. So yeah, in my use case, these bikes could be very huge data sets and an unknown number of them. So somehow the context propagation needs to persist for a long time, maybe a whole day or a whole week, and it has to have some metadata that refers to that bike, that data. And all of this is I guess going to be part of the spec. Is that right? Okay, and I also wanted to say that this all sounds similar to another project called Open Lineage, which is about data lineage and working out the dependencies between data sets with processes in between them. And I've seen that kind of project going on independently of open telemetry, but I think maybe this is starting to bring the two worlds together of data and processes. Yes, Open Lineage, it's a very interesting project and there is definitely overlap between what we do here and what Open Lineage does. There is overlap in the requirements regarding context propagation, both Open Lineage and also those semantic conventions require context being propagated so that you can make the connections. However, the use cases are quite different. So with Open Telemetry semantic conventions, we strictly focus on telemetry data. This is our focus, so we want to make sense of logs, traces, metrics, maybe profiles in the future. That is our focus and Open Lineage has kind of a different focus. There you want to understand like the history of the event, how it changed, how things stick together. So there is overlap and this overlap, maybe we can isolate in coming up with unified context propagation. We can try to use the same terms as Open Lineage so that we don't operate in two different worlds, but I think we can benefit from keeping the use cases apart, making us aware of what we're focusing here, telemetry, because we don't run, we easily otherwise run into the danger of coming up with a solution that seems to fix everything, but then does nothing really good. Yes, I've heard the Open Telemetry team talk about potentially thinking about new signals. So not just metrics, logs and traces and now profiling, but maybe other signals that I'm not sure whether you think that might be potential for new signals in this scenario. That could be a potential for new signals. So if you have any ideas there, please join our group and talk to us. So we are grateful for any kind of creative and new ideas in that space. Thanks. Hello. Hi, Jonas. This side. I think it was good to sign. I think that's the last question that we will be able to take. Hi, Jonas. Great talk, Jonas. Thanks for that. Quick question. I think you already touched base that the sampling is a problem, right? But do you have any recommendation, Miss, any use case with how can we handle by the time if we have some solution which is a permanent one, right? Any, Miss, whatever, Miss, your experience has been with the sampling part. Yes, as I said before, this is the biggest current pain point. If you need to sample, if you really need to sample and if you want to see your complete workflow, then currently the only option you have is to try to put everything into a single trace and then established sampling solutions will work. If that does not work for you and you need to break up your traces, there is prototypes of link-based samplers out there that could be used. However, they are very immature and they will not work for all use cases. They will also not give you a consistent sampling rate as output. Because when you have fan-in scenarios, here we have three links and if we say, okay, fix three bikes, now I get in three contexts, upstream context and maybe two of them are not sampled, but only one of them is sampled. So what do you do then? If you decide that you sample, then you will end up with an actual much larger sampling rate than you have specified upstream because you kind of multiply the sampling rate by three here because you have three contexts incoming. So unfortunately, the only advice I can you give now, if you say, okay, I need sampling, I would say try to keep everything in a single trace. Yeah, here we see that fan-in works. It's supported by the spec. Is fan-out also supported where we have one producer and multiple consumers? Yes, fan-out is also supported. Fan-out scenarios, you can even model with just a single trace. We see that, give me a moment here. So here basically we have one producer creating three messages and basically three different consumers pick this message up. So fan-out scenarios are supported both with the single trace solution and also with the multiple trace solution. Thank you. Okay, I think we're out of time. Thanks everybody.


Hey guys, Coach Mack here with this week's Beneath the Surface powered by Microsoft Surface beginning now. Indy goes to a zone cover two scheme. Offensive line does an excellent job picking up the three man game to the quarterbacks left side. Tannehill now sidesteps the pressure right up the middle in the cylinder again another great job by Hooper settling down between the two safeties that are the two high safeties in this cover two scheme who both converge on the ball. If you'll watch closely, this ball is moved five times before Hooper secures it with outstanding concentration on the sixth time. This is not only a pivotal catch, it also forces Frank Wright to challenge the catch losing a timeout which proves very, very vital at the end of this ball game and that was an outstanding win by the Titans 19-10 over the Indianapolis Colts and a really nice day by Austin Hooper.


will not be a mean-spirited hateful bone in my body when I say this, but I will mean it. If anybody in this tent, if anybody online, shout anybody, I don't care who they are. If anybody can show me one place in the Bible that God ever says to us that the gifts are no longer in operation, anybody, I will personally hand you a check for $20,000.  If anybody can show me one spot in the Bible where the gifts have said, I see y'all digging that. You ain't gonna find it. Well Greg, I'm anybody, and I'm not gonna tell you that the gifts have ceased. I'm in agreement that I don't think that the gifts have ceased, but I will offer a counteroffer. My counteroffer is almost in the same vein, and that's this. If you can show me anywhere, anybody on the planet can show me anywhere in the Bible where the gifts, the type of gifts that you say are in existence today, if you can show me those in the Bible, well then I will also offer a reward. What I mean by that is this. If the gifts that you say that are in place today, the prophecies, the kind of prophecies that are not 100%, what I mean by that are the prophecies, the kind of prophecies like today that are not 100%, in other words, they're hit or miss, they're vague, they're not specific, those kind of prophecies. We don't see those in the Bible. Or how about healings, the kind of healings that no one has any sort of verifiable proof, the kind of healings that are over the course of time that require doctors, that require medical attention, that kind of healing, that kind of gift of healing. Also with tongues, I'm not talking about the kind of tongues that we see today, the kind of tongues that not the hearer, not the speaker, no one understands the kind of tongues where there are no, there's no interpretation, the kind of tongues unlike in the Bible where there's an actual language attached to it and it's for the benefit of magnifying Christ and sharing the gospel. I don't see that gift in the Bible or casting out of demons. One, we cannot verify that the person that you cast demons out even had a demon. Two, that the person was a Christian because we don't see that Christians in the Bible had a demon or were demonized. And so I would like to offer a counter that if anyone, anybody, including you Greg, I'm taking up on your challenge, sort of, that if you can demonstrate that the gift that you're speaking of, the gift that you're asking, the gift that you are putting money up for, if those gifts are actually in the Bible. Now, I don't have $20,000, but I do have something else just as valuable. I have my daughter's cat. Anyone that can disprove or show what I'm looking for in the Bible, you can have my daughter's cat, Zion. Now she would be very upset with me, but I'm confident that we won't lose this bet. She won't have to lose her cat because there is no such passage in the Bible that will demonstrate that not that the gifts that you're talking about have ceased, no, that the gifts that you're talking about have ever existed in the first place. So, Mr. Locke or anyone else, please take me up on this offer.