We might want to wait a couple of minutes for people to get on the call, because it takes about five minutes. Let's see. Oh, I'm giving a summary. All right then. Good to know. I should prepare summarizing already. So we have Michael and Mike from Couchspace. Do you go by Michael, Michael? Is that how you guys differentiate? Yeah, actually, I think so. I'm the Michael and Mike is Mike. All right. That makes it easier. You're muted, Chris. Actually, two more from Couchspace on the core. Oh, great. Yeah. Sweet. Whoever is managing the attendees. There you see. 835 right out of the money. Perfect. All right. That looks like a good form of people. Hello everyone. Welcome to Friday. Welcome to the OTSC call. Great to see all your lovely faces. We have a pretty cool call today. We've got the couch base team here in force. And Mike and Michael are going to present the great work they've been doing integrating open tracing directly into their libraries and products. Please make sure you add yourself to the attending list. Looks like everyone's doing a good job of that right now. And yes, Matt, we are recording this. So this will go up on YouTube on the open tracing channel when we're done. And on that note, Michael, you want to take it away? Yes. Can you. I think I can just jam my screen. Can everyone see? Yeah. Okay. Perfect. So let me jump over to the slides here. All right. So thanks everyone for joining and everyone who is watching the recording in the future. A slight correction. So I'll be presenting this alone. Mike had his hands full with other stuff. So, but, but he is around for any.net and other related questions, but you'll just have to bear with me for now. So yeah, my name is Miho Nijinga. I work for couch base as a software engineer. And lately, last couple of months amongst other things, I've been needy into what we call response time observability, which of course also feeds into the whole open tracing theme, which I'll talk in the next couple of minutes. And then we have a demo and then I think we can just easy to open it up for questions. So I'm going to tell you a little bit about couch base, just a couple slides for those who haven't read it before what we've been doing, then the challenge which brought us into the whole open tracing distributed tracing theme timeouts. Then what we've done with adopting open tracing, the good and the challenging pieces, then a live demo and then I call to action and then we can do some questions. All right. So what is couch base for those who haven't heard it before? Basically, couch base is a distributed document or at the database focused on scalability and performance. Right. So that's the one line sentence of what couch base does. And so it has all kinds of properties like auto shouting, a flexible data model. But for I think for the purpose of today's core, what's important is that it has a memory first architecture and everything inside the database itself is also done asynchronously. Right. And we'll see how that works in a second. And the other thing is that you can scale workloads independently. And if you look at couch base from where it's coming from, right, it was originally years, years ago. It basically was a distributed managed cash and they came at your store. And then it evolved into the document database theme. And that's been adding other things like couch base mobile and legal query language, which is very SQL like we added food research. Now we're adding analytics. So you can see there are like more and more components being added to the system, which you can immediately think that it's probably not going to make it easier to troubleshoot performance issues. Right. But just that you get an idea. This is what we're coming from, basically from being a distributed managed cash and then adding functionality towards document oriented analytics, full text search and so forth. And one thing to call out here is that one interesting property of couch basis that it supports will be called multi-dimensional scaling. So you can basically enable every kind of service, be it key value, be it full text search querying on every node in the cluster, but you can also choose to only enable individual services on each node. So you can say, okay, I have a 50 node cluster on two nodes around the query service. On the other side do indexing. And then I have a couple other nodes where I store the data, the KV service. And the important piece here is that on the client side, our SDKs are actually intelligent. They don't just take your data dump and send it to a remote socket, which happens mostly with relation databases, but the SDKs play an integral role as part of the distributed system. So they basically get cluster information in your real time, basically get an update of the topology. And then they decide when a request comes in where to dispatch it to, including handling certain retry scenarios when you are rebalancing the cluster and rebalancing means you can add and remove nodes on the fly without downtime. So that's another challenge that the SDKs handle, right? Making sure the data gets to the right places at every point in time without user disruption, right? And here's an example of how we would do write operations. So for example, you create a document in your, let's say, Java application, and then you call the upset method on the SDK. What happens is, of course, we send it over the wire to the server and then it lands in the managed cache, our KV layer. And then the managed cache, once it's there, it will basically acknowledge the write to the application itself. And then it will asynchronously send the operation to the replication queue, asynchronously to the disk queue, asynchronously to the secondary indexing engine, right? So all of these steps are happening asynchronously. And obviously they can also happen over the cluster, right? So the replication queue will eventually send the operations to the replicas on other machines, right? So even if you just perform a single operation from an SDK point of view, many different spots in the distributed system actually affected. And when we come to the point where something is slow, right, we need to figure out which places in the distributed system have been touched and where the slowness comes from. And the other operations are the same, but I just didn't add more slides since it's similar. But if you have questions on specific functionality of CouchBase, just let me know when we can cover that later. So with that basic knowledge in mind of how CouchBase works and operates, why, so what's the big challenge, right? And the thing we've come across in the years, and I've been with CouchBase for many years now and we've been handling support escalations. And one of the bigger problem or the bigger challenge users and customers are running into are timeouts, right? And the problem is everyone who has looked at timeouts and worked with them and tried to figure out what's going on, the realization is timeouts are always the effect, but never the cause, right? Timeouts are the symptom of something being slow in the system or taking longer than expected. And that's something that realization hasn't happened to lots of users out there, right? You see a timeout and you think the problem is the timeout, right? So one of the steps or one of the important pieces here is to help users first realize that timeouts are not the real problem and they need to go deeper and figure out what caused the timeout in the first place, but then also give them the tools and functionality in their hands to actually go troubleshoot it because one of the challenges with, for example, the current Java SDK, but it's similar in other languages is that here in this stack trace, the user has been performing a get request to just fetching a document, right? And what it gets returned was a timeout exception, but the problem is just with the timeout exception only tells you, well, something was slower than expected, the deadline you gave it as a timeout value, basically it took longer than this timeout, this deadline, but it didn't tell you exactly what went wrong, what went slower, and then it's very hard to troubleshoot, right? The next step most of the time is go look at the logs, figure out if you can see something, go fetch information from the server to see if something's slow there and so forth, right? So a very iterative process, explorative process, but also sometimes very time-consuming and making that time slower to basically go from something went wrong to detecting what went wrong and exactly how to fix that, right? This is the whole purpose of the response time observability. So common causes, obviously there are three players or three components in our distributed system, right? There is the app servers and there can be many of them, and then we have the network, and then we have a cluster of card space nodes, and each of them can have several causes. So if you look at the application server, right? At the very bottom you have the networking card, and then on top of that you have the operating system with potentially many different layers of virtualization, including Docker, Kubernetes, whatever, right? So that doesn't make it easier to troubleshoot what's going on, and we have seen weird bugs at the OS lever. Yeah, I don't want to go too deep into that, but we had issues there as well, and then obviously you have the runtime, right? So if you develop a Java application, you have your application server, at least your JDK, garbage collection, all the fun things that you have to troubleshoot, then inside your runtime you have your application where something can go wrong, logic problems, and then inside the application you have the SDK, which can also have bugs, right? No code is perfect. So you have all these causes on the application side, and then if we go down the layers, we get to the network, and then you have firewall switches, load balancers, proxies, all causing latencies, maybe in batches, maybe, yeah, like spontaneously, we have seen firewalls dropping packets, firewalls basically blackholing the sockets, neither telling the server nor the client that the socket got closed, right, operations going into the void, all these fun things on the network, and with shared networks on EC2 and other cloud providers, yeah, it's even trickier. And then once we have all the application and the network handle, then we can look at the Codech Preserver cluster, and there everything applies obviously to the OS layer, but then instead of the application server, we have our Codech Preserver node where each individual service can cause loneliness, or like if you fetch a document, the disk can be slow, right, so it's coming from the KB service or garbage collection in the needy query engine, something like that. So then you have all those causes inside Codech base, and then on top of that, we need to figure out where the loneliness comes from with a single timer exception. And then that led us to look around and figure out some ways to make it easier onto our users and to our support folks. And this is what led us to open tracing. So we basically sat down and did some brainstorming and figured out some key requirements for adopting a certain API inside our languages. So there is vendor neutrality because we are not in the business of like application performance monitoring, right? We are not providing tracing implementations, but for us it's important that we plug in into as many tracing implementations as possible, right? We don't want to enforce anything specific onto our users. And then for us it's important also that at least by default it has a small footprint. We are bringing in more dependencies, which means potentially there are clashes with other application dependencies, right? The more baggage we bring into the system, the more there is a challenge that specific customers have to probably deploying it and so forth. So we're looking for minimal footprint. It needs to be supported across all our SDK languages that we support. So I've put all those logos here on the sides of Java, Gold, Net, C, PHP, Python and so forth. So we officially maintain a large array of SDKs and every functionality that we were out we need to provide in all of those languages so that if you are coming from Java and you're switching over to Net, you want to feel right at home, you want to have the same functionality and enlarge diverse ecosystems in enterprises, right? You have different teams running different languages but eventually if they settle on the same distributed tracing engine for the whole system or you have different microservices in different languages, you want to have the same functionality available. And then it should be actively developed, right? It shouldn't be something that we adopted that there is no adoption anymore right out there. So that's why we settled on Open Tracing because it's meta-neutral. It supports all the languages that we need for SDKs. And this is very important for us. It's an API where no other decisions are made. We don't want to enforce any specific network transport protocol decisions onto our users. We don't want to enforce other implementation details that they want to override or customize in their system. And it's backed by the CNCF. So it has certain momentum, right? It's not like this small one-off solution that users end up building customized code anyways for it, right? So it basically brings all this disbacking with it. And it's a moving target. And so that's a little challenge for us, right? But the good thing is we can influence the moving target, right? We can participate in Open Tracing and move it forward. What we mean by moving target is the versions. So it's not like there is a one-off spec that is basically set in stone. It's evolving, which is a good thing. But it also means that we need to basically keep track of the changes. And then with each incremental SDK version, basically bump the dependencies of Open Tracing to make sure we are tracking it appropriately. So one other key design decision was to implement a default tracer, right? So if someone upgrades, let's say from Java, SDK 2526 where there is Open Tracing support, the user doesn't even have to know that Open Tracing is in place other than getting in one more dependency. And the reason is we want to make it plug-and-play, zero friction, right? And the idea is that we ship with a default tracer called the threshold-loving tracer. And what it does is it's a tracer that is enabled by default and it aggregates low spans on a per-service basis. So, for example, QValue, Nickel, all those services we provide and logs them at an interval. And we have set specific thresholds, but you can tune them. So they are set at, for example, any KB operation that takes longer than 500 milliseconds, those are aggregated and then logged in a 10-second interval. And then, for example, the top 10, the top 10 slowest operations are printed into the log with additional information. And with the information that we provide, it suddenly makes timeout correlation possible. So in the timeout exception shown here, it actually changes from a simple timeout exception without context to a timeout exception which gives you an identifier that you can use for looking at the logs. We provide operation ID, the local and remote sockets. We set a timeout. So we suddenly enable the user to look at this information and then correlate it with the log output from the threshold log report, which is part of the tracer. So every 10 seconds, it will dump out the top 10 or whatever you configure slow operations and give you the same information. And in addition, give you the timings for specific parts of the process because let's say you have a timer that's 500 milliseconds but the operation hasn't returned. But if one second later the operation returns from the server, we can still get information out of it and then put it in your log. So in this case, you can see the total time the operation took to execute. The dispatch time is in there which basically combines the network time and the server time. And then if the server service supports it, it also gives you the server time and microseconds. So for example, if you store a document or you retrieve it from our KV engine, as part of the response, it will tell you how long the operation took. Then we also give it information. So by looking all those different timings spans, suddenly you get this immediate insight into the different timings of the system without before you had this opaque timeout and you had to configure on your own what's going on. So as in a Java example, this is like the demo setup that you'll see in a bit, but I wanted to include some screenshots in here as well. So by accepting a tracer into our client, you can configure whatever you want. You can just use our default couch base, a threshold log tracer. You can use Yeager Tracing. You can use LightStep. You can use whatever you want. And the way you put in your tracer is just the way you do it with the couch base, Java SDK or any other SDK in general. So there is this environment where you just give it a tracer instant and we would use it. So just by changing the environment with giving it another tracer instance, suddenly you go from our built-in zero-friction copy-paste logging engine to a distributed tracing engine without for you having to do anything, right? So for example, here is a screenshot I took from Yeager where we are performing an operation called GetFromReplica where we are basically you are asking for giving me the document from the active node and all the replicas, right? And you can see how the parent GetFromReplica operation then has subspans of the get going to the active node and then here I have one replica configured. So the operation, you can also see how it goes to basically the active and the replica at the same time. You can see how long it took. And then you can see all the spans, basically that previously in the log tracer where it just fields in the JSON, you can see them as extra spans here. How long the took the dispatch to the server, how long took the response decoding and so forth. That's just all of the box in the system. And then another quick example, here's a nickel query where you can see we are also adding tags to our spans. So you get the component, you get the service that you're running, you get the statement that got executed, specific operations ID and so forth. So basically storing all the tags along the way which you can use for filtering and further troubleshooting. So with that, let me jump into a quick demo so you can see the whole thing working. Or maybe are there any questions so far? Okay, then I'll just move on. This is awesome though. Okay, thank you. So you like demo. So I have just a couch base note running locally. So this is our UI. There is nothing fancy. We have two buckets. One is our travel sample bucket which has airports, airlines. It's just some sample data that you can use for querying. And we'll use it. And then I have a Yega instance running locally and I'll show you how that works. So here we have our code. Can you let me just show it to you briefly and then we run it. So as a first step, as a first step, we'll do the couch base tracing and then the Yega tracing. So other than that, we connect to local host, give it our credentials, open our bucket, and then we perform a document fetch. Then we will replace the document we just fetched and then we'll run a nickel query, select distinct type from travel sample. So it will give us all the distinct types that are in the bucket. We just sleep a little bit. So we give both the couch base and Yega traces some chance to send it to the remote system. And the way we set things up for the couch base tracer, I've been modifying the report a little bit. So I've been lowering the threshold to one microsecond to make sure that every operation actually gets locked and I increase the same precise from top 10 to top 100. You don't need to do that, but you can see how to configure it. Also setting it pretty to true. You only would do that in debug, obviously, because in a production system, you want to keep your logs short, but we lock it in JSON. So if you run something that is taking a log files and putting them to another system, for example, if you don't have a distributed tracing engine right now, you can still make use of the JSON block and feed it into another system to analyze later or for a support staff who can just grab for the stuff and look at things that are slow. Or we configure the gigatracer. We point it to local host, give it some params, right? But pretty simple setup. And let's run this first. Let me get out of here. I'll just run this with the couch base logup. And what you can see here is that, so we were doing three operations. Let me just... So that's just... All right, so what you can see is we've been performing those three operations again, the replace and the nickel query, and they all show up here in our log, right? So we have the get request and this identifier, it's maybe not as important to you right now, but what this thing does, actually, what we do with, once we connect to the server during the handshake process, we pass this ID to the server. So the server also has a threshold log of some sorts and it will log this ID as well so you can take with this ID and the operation ID. You can uniquely identify any operation in the system on the server side, right? So even if you do not feed this into some distributed tracing engine, you still get the chance to have a better correlation of what's slow in the system. And we see the timing, right? So 20 millis decode took 9.7 millis so you get all of these out of the box. Fetching the document on the server, excluding network time, took 49 microseconds. Then we have the replace operation and we have the nickel operation. And if we do the same thing with... Here you go, Tracer. Right, again. So you can actually, in the UI, on our code space UI, you can see so you can see the... in the packet statistics, you can see the operations going through. And then if we go over here, find traces. You see those spines in Yega, right? Without doing anything, click on the nickel span. You can see the dispatch to server time. On the nickel, you have all the tags, right? The query just executed the operation ID. Everything basically you've seen in the logging trace also gets stored here in Yega. And we can look at the others like replace. And the other thing is that depending on what kind of operation you run, if it's a mutation, we will span the encoding part. If it's a fetch operation, we will spend the decoding part because we've seen in the past that if you have huge documents, JSON encoding and decoding can take a long time, right? So you would immediately see that as well here. All those things are in place. So I think I'm pretty good on my 25 to 30 minutes. Oh, one more thing. I forgot the call to action before we go into questions. So our open tracing support is currently in the developer preview. We are planning on a beta end of next week. Two weeks from now. And then once couch beserver 5, 5 ships in a couple of weeks, months, something like that, this thing will become GA, right? So our call to action right now is we're actively looking for feedback in all kinds of languages. It doesn't matter if you are doing Java.net, whatever. We'd really like your feedback or no implementation on API where we can do better. Our response time observability. So we have a concept called SDKRFCs. So every feature we develop for SDK is basically put in an RFC where we discuss it. And these are open access. So I put the link in here for the draft. Take a look, put in questions and remarks if you have them. And the other thing I wanted to point out is so we have a blog at blog.couchbase.com. We're currently working on a series of blog posts on that topic. So watch that space. There is more to come there. If you watch that in the future, you can go there right now since they will be published. With that, thank you very much for spending the time with me 25, 30 minutes. And thanks for the opportunity to let us show what we've been doing for the last couple of months. And with that, I'll open it up for questions. Please, Mike, Matt, Graham, since you're on the call, if there are any other questions that affect you, please jump in. Thank you. An awesome talk. Thanks so much. I do have one quick question. So comment first. I guess I just said this is awesome, but this is awesome. It's really exciting to see this. And it reminds me a lot of Bigtable at Google had pretty thick clients that did a lot of important logic that was involved in the same sorts of optimizations you're doing. And I remember to recall that tracing in those clients was essential for the same reasons that you've outlined. I was curious, though, from kind of a business standpoint for CouchBase or for the people using CouchBase, how important are these sorts of timeouts in terms of the support team and so on? Is this like pain point number one? Or is this like, where is this on the list? So from basically working with support team, I can tell you that in general, timeouts are maybe one or two on the list. So it's a very big pain point. And the reason is that one of the reasons I didn't mention is that, for example, especially on our KB operations, we have a default timeout of two and a half seconds. And some users even set it even lower. And if you compare it to traditional databases where you have 70, 75, or even no timeout, very quickly, you run into those timeouts. Where in other systems, the thread will just go out. You have to go look at the profiler and see that your threads are blocked. People are running into timeouts with CouchBase way more often just because our timeouts are lower by default, which in my opinion is the right decision, right? Because it's this scapledge where if something gets low, then you can retry, you can do whatever you want, and we give you back the control. But the average user who is not used to handling timeouts, especially combined with asynchronous operations, so the Java SDKs, asynchronous as well, right? So handling asynchronous retries and so forth. You all need that for running a scale-up distributed system, but it's just not something that the average developer is immediately used to, if that makes sense. Yeah, the other, just to mention a couple of quick things. One of the challenges I guess we have at CouchBase is we are Apache 2 open source, and there's an enterprise subscription, all that stuff. So we certainly have those commercial customers, but then we also have lots of two and three node deployments. So in those cases, I don't need, you know, sometimes this becomes an issue for them, but they're not always running that kind of full tilt. Others like LinkedIn, they have their public reference first, and they have like 1200 nodes at CouchBase, and they obviously want their site fast. And so that getting that observability is really important to them. And just to clarify, part of the value prop here is not just that you've given instrumentation to your customers, but you also, you wrote this instrumentation with some playbooks in mind, right? So you actually have some playbooks. You're going to be giving your customer or otherwise when they come to support, you know, it's integrated kind of hooks you and trace points you put into the client. Yeah, absolutely. One, I don't think I can reference who they are, but one user is actually a member of CNCF and OpenTracing, and they're probably going to implement, they have some specific needs and they'll probably do their own tracer. And then of course there are going to be plenty of commercial projects, commercial products and projects that you can plug in. Yeah. My one comment on that is, you know, there's been a discussion about like automated tracing versus manual tracing, which I think is like maybe the wrong way to slice it. And I would like to maybe go forward, talk about there's two kinds of automated tracing. There's dynamic tracing, which is the traditional agent-based thing. And then there's pre-provided tracing from the service provider, right? And they're kind of mutually exclusive, right? Because the point of this instrumentation is the service provider is giving you this because they have like playbooks about what you're supposed to do when these things pop off. And that's like, you know. As you said, Brennan, the other thing is that with, like as a service provider, we just know from history where the pain points are, right? So we can provide very narrow and focused instrumentation on the usual pain points with, if you have some generic tracing agent-based, right? You're basically, you don't have this insight because you just can't learn every library out there, 100%, right? How the usage patterns are and so forth. Yeah. I would love us to start explaining this to people about how these are both useful things, but they're just useful for solving kind of mutually exclusive problems. Yeah. And what we have here is pretty modest. You know, it doesn't do a whole lot, but at the same time it does, it gives you, you know, a fair amount of insight very easily, which was kind of our goal. And we had just, Mike Goldsmith in particular, he and I had to spend a lot of time thinking about, like, okay, how do we make sure that we can run this out of the box, not spam the logs, and still get useful information out of it. That's awesome. So is this currently done only on the clients, or do you have also back-end instrumentations? At the moment, oops, sorry guys. Oh, go ahead. At the moment, it's only on the client. However, we do, and Michael showed this a little bit, we do actually grab certain statistics that are returned in the responses and then put those in. So that was one of the kind of important things that we had, actually, is that frequently, and we'll see these things, people will wonder, you know, we've seen the one issue, Michael kind of slightly referenced. We saw an issue where it was SSD ware-leveling, and it would affect nodes fairly randomly, but how do you find it? Because it would be intermittent, and so we needed to be able to see that, that server-side measure of how long it took. The other thing that we did here is there's a correlation ID so that you can take the correlation ID and then go look at other information on the server-side from a login perspective. That's maybe a little less distributed than we'd like, but it's there out of the box. In the future, we're hoping to take care of it. Yeah, I mean, I think important to point out this, right? This is not like the info couch base, but this is the first step, and we have more plans, right, to integrate it potentially with the server, have even more instrumentation, right? But this is like the first step into this adventure. Yeah, and we didn't really show it, but it's also important to us is that the user can do their own instrumentation and have that pass along into our libraries, right? So Michael, show them some of the other demos. Yeah, I wanted to mention that too. I've seen there's a few other databases that have open tracing instrumentation, and I think when they get plugged into application code that also has open tracing, being able to see that full stack has been quite powerful for those end users. Okay, so we've got 20 minutes left on the call and maybe a couple other things to get through, but this has been a great talk. Are there any final questions to ask the couch base team before we move on? All right. Well, we can certainly continue this conversation in Gitter, and this video will get posted up on the internet so we can start sharing it around because I thought that was a great presentation personally. But moving on, someone put update about happenings in the larger tracing community. I think I put that down on my phone. Yeah, did you have something specific there? Maybe. I mean, I might consolidate it with the item a few lines down around the conversation that we had on Tuesday. I think since the last OTSD call, there was a Gartner report that came out about microservices in APM which ended up basically saying that the enterprise software market that Gartner studies is moving towards increased adoption of explicit white box instrumentation and then mentioned open tracing by name a couple of times, which is cool to see and I think reflected reality that was met with a number of blog posts from other folks, which had varying levels of positivity about open tracing and instrumentation in general. That was not causally related to a blog post that Erica, Arnold from OTSD put up a few weeks ago, but it's topically related to that, which just kind of describe the different aspects of tracing which I think had put on the agenda. But in general, there seems to be a growing need to, like within the larger tracing community to describe the different aspects of tracing and name them and specify which problem is which problem and make sure that people who are trying to solve problem A, value that problem B and problem C and problem D are still important. So I think that's the basic narrative that I would try to play about this whole thing. There's certainly other takes on it that would be a little bit more emotionally driven, but in general, I think that this is a lot of people who need to understand the value of different problems. To that end, there was actually a very productive meeting on Tuesday that was organized by Ali Wright from Dynatrace, and he got a bunch of folks together who many of whom had been working on the W3C context propagation standards effort and tried to start a conversation including representatives from New Relic and AppDynamics as well as Census and Sergey from Microsoft around the importance of white box instrumentation without naming open tracing by name or open Census by name. It was a useful conversation for sure. I think everyone agreed that it was very important for there to be a lowercase s standard API for describing transactions that was separate from anything else, which is open tracing as a charter, and then AppDynamics and Dynatrace and to a certain extent New Relic, but maybe to a lesser extent New Relic, have certain things they'd like to express at different levels of application complexity like they'd like to separate span management from higher level concerns like describing HTTP requests and database calls and things like that. So we had about a day long workshop that would work and I felt like it was quite productive and there was a lot of alignment. So I just wanted to say that we're going to continue to have that conversation. If people are interested, you should ping me or Ted or whomever. All are certainly welcome to participate in it, but I just wanted to let people know that that's happening. I don't like how they feel like there are several different small conversations going on with people from different continents about tracing, and I wish that everyone could just be in one conversation. So this is just my attempt to update other conversations happening until welcome to anyone who wants to take part in it, but in general I thought it was very positive and there was a lot of alignment. Yeah, I would second that and say that conversation kind of dovetails with the W3C working group that is mostly focused on this trace context wire protocol. That wire protocol conversation is important. It hasn't been super directly related to open tracing in the sense that we're wire protocol agnostic, but it is important to, obviously, the members of the open tracing community where these two things start to get tied together more closely is on the other side with a sort of data export format. If you're going to use a standard wire protocol to tie multiple tracing systems together with, you know, unified correlation IDs across tracing systems, you're still going to have to have this problem where you have to get the data out of one of these two tracing systems into the other one so that you can analyze it. So a standardized data format is sort of the other half of that puzzle. And once you're defining the data format, you're getting to something that relates much more deeply to the kind of instrumentation you're doing. The model of that format ideally should line up with the model that the API is thinking about and then more concretely the, you know, tags and keys and values that the data format is using to describe things like HTTP calls or any other higher level concept really needs to match what that instrumentation library is doing. So I think that's an area where that W3C tracing working group and open tracing those projects need to gel up on that side. Because there is a lot of overlap there. Other people were at that meeting. If people want to keep talking about that please go ahead. Otherwise we'll move on. When's the next one? I don't know Chris. What is it? You can all come to Providence or at Island. Sweet. All right. Chris is organizing the next one in Providence. So ask him what is going to happen. Yeah. As soon as another one does get on the books we will make sure to spread it around the open tracing community. So other happenings going down the list on the agenda there was an inaugural Austin meetup. This is awesome. I believe this is the first official whatever open tracing meetup that has occurred at least in the U.S. to my knowledge. There was a meetup group in Austin that was formed mostly people at I believe a home away and under armor kind of holding it down. Sorry if I left someone out there. It consisted of a number of talks. I gave a talk Eduardo from Home Away gave a talk and there was a panel of tracing. It wasn't all open tracing related but there were people who worked on the Haystack system at Expedia as well as people from PayPal who has had a centralized log aggregator for a while. It's like a tracing system. And so there was a panel discussion on tracing and the pros and cons. My big take away was that this is really useful to people. Application developers don't like instrumenting the third party software that they're given. They don't like doing that themselves. They would prefer that it come with something out of the box like what Couchbase has created that they can just plug into. And if it's a third party plugin that's great. If it's first party and comes with a playbook with deeper information about what those trace points are trying to measure that's way better for them. So it was interesting to see users on one end asking for this and then hearing this Couchbase presentation around service providers giving them the thing that they're asking for. So that's making me feel really happy. Basically it was a great meetup. And we should perhaps start more in some of these other towns that are clustered in. So anyone who wants to start and run an open tracing meetup I'd recommend doing it and just ping me me and Priyanka if you want some help with that. I'll take you up on that. We'd be glad to maybe do something in the South Bay area. Awesome. Yeah, the South Bay meetup would be great. Okidoki. We've got 10 minutes left. We've gone through basically everything. Someone put tracing in four parts summary from TED so I guess I will talk briefly about that. We've already I think covered this. Erika wrote a great post called you know Tracing Tracing Tracing and I gave a talk along a similar topic down in Austin that I would like to turn into a blog post. But pointing out the way I think people have been receiving it well is like there's four parts of tracing. I put a link to the particular slide. I think that shows this. You've got a tracing API that you're using to instrument your code. There's a wire protocol that's standardized to talk between these systems. There's a data protocol that's sending things between analysis systems and then there's an analysis system itself. So talking about it in those terms the API, the wire protocol, the data protocol in the analysis system is a nice way to break it down because different people are focused on those different components. So depending on your role in this cloud ecosystem, you might find one of these things way more useful than the other. For example, if you work on cloud infrastructure at Google or Amazon and you're providing cloud services to people, you really care about this wire protocol and this data protocol because there's no way for them to install a Yeager tracing client in S3 for you if that's what you're using. So the API layer is not very useful to people who come from that background and because internally at places like Google, they tend to write all the software from scratch in-house something like an agnostic API isn't useful for them internally either too much. So people from that background tend to really really focus on these protocol level things. Whereas people who are not currently yet trying to glue together multiple tracing systems are less likely to look at this wire protocol and data protocol stuff and be like that's my big pain point. Without a standard data protocol how am I supposed to get my information out of Yeager and the answer is like I don't know, I just put it all in Yeager and there it is. So it's fine. So there is a bit of people in the community I think sometimes talking past each other because they're just feeling a different part of the elephant and I would like to get that sort of like cleared up maybe like getting some common language around that stuff. So on that front I'm going to try to turn this into a blog post to kind of follow up with what Erica wrote. So I don't think we can do this enough. That's all I have to say on that subject. Look for the blog post. So we've got a couple minutes left and we've actually made it all the way through the agenda. Does anyone have any announcements? I think Chris added something to the agenda. I did add an item because last meeting month there was an action item that I was going to change my PR to do trace context header detection on basic tracer for go to have a start with a first step suggested by Yuri that the inbound trace ID in the trace context header would be stored as a correlation but not used for the basic tracer zone trace and then the second phase could be a separate PR that actually upgraded basic tracer to the 128th bit. So I'm also going to those WTC meetings and I wanted to have in the show for both this group and that group and you know how so I guess I should just put this on the getter but what do you think is the method of correlating WTC trace context trace ID with an open tracing basic tracer trace ID. It's just a tag with the name trace context and that's it or if you want to do anything to stand through than that. That means to have basic compliance for basic tracer. Basic tracer has probably doesn't deserve to be in the, it probably should be in contrib or something. I think that it's more of a reference implementation than like something anyone is really depending on the meaningful way that I'm aware of. And this was just intended to be a reference implementation of how you might parse a trace context header and use it for your own trace. Yeah. It's a good question. So your proposal is to parse it and then add it as a tag to the basic tracer span but not to change the main propagation format. Yeah I got the impression that's what Yuri was suggesting last month when he said well why don't you start out with just within the notes from last month and then gone into a more deeper integration where I was just going to change basic tracer to do 128 bit trace IDs because it's doing 50 for the tracer IDs. And trust native, naively the sampling bed and everything. It's kind of a you know a punt but another thing I'm not attached to this at all but I can imagine basic tracers options that it uses at start up time could include some kind of designation as to which propagation format it's intended to use. I mean that XOT span context thing which was added as sort of like just a kind of whim I think has actually caused people a lot of anger which is hilarious to me. It's like we have to choose something. It's a reference implementation. Replacing that or at least having the option to replace that with the W3C thing would be completely fine as far as I personally am concerned although obviously there are other people but then there could just be like a construction time option to initialization time option made to tracer to say hey like use the W3C thing as your propagation format and personally I think that would be fine but again I don't know if you already had something else in mind and I don't need to dictate it. That's awesome. Part of what you were trying to explore Chris was just what if people are in this situation right? Like I have a tracer that uses the wacky trace ID but it's also a open tracing compatible and also just there exists no actual implementation of the do-it-yourself standard that I'm aware of so that was the other reason for doing a reference there's like a half implemented version in census that it doesn't actually match the time it's back or again. So Chris for light stuff we've made some changes to our internal format which is not no one is claiming to be any kind of standard and when we've done that we've basically had you know an if-else thing where we attempt to parse different formats and that would be another option to make basic tracer prefer the W3C format and if it's unavailable to fall back on the XOT span context thing or whatever I mean that is another option. Yeah I think the original yeah okay I think I'll try that then easier certainly than doing it with the weird um I think the original idea was oh let's say you go through um I don't know from Dynatrace to X-ray and back again and you want to see the trace ID that X-ray put on the thing assuming everyone's using W3C context and that implementation would have like a good example of how that might work that scenario that's a lot more complicated than what but that was the idea I think the reference implementation was done as well. I think it's a great idea I think that approach would I mean that scenario you just outlined is sort of the you know the graduate course level version maybe we're talking about the high school level version or whatever. Yeah that's what I want to eventually show is like here's how you could actually um have two different trace things in terms of two different trace IDs that sort of interoperate. I still think you'll need some sort of like a correlation ID tag because even I mean even if the tracer supports like W3C fully sometimes you you want to give the user the option to either participate in the trace or only connect to the trace right. Right yeah I agree and that's that's sort of how the Dynatrace Amazon you know sort of thing would work you wouldn't just trust other tracers or even use their ID you just add it as a correlation and then push it into magic correlation contact header. I certainly think there's value in just the simpler task of of just trying to parse that header like trying to actually implement that standard. This is getting into W3C business but my one concern on that front is there's been lots and lots of talk about optimization and I feel like in some sense some of that talk has been focused too much on like the kind of optimization you would get out of building your own custom HTTP client that was like super optimized for grabbing these things because again I think infrastructure developers will do that because it's worth it to them but I have wondered like what are the actual performance implications for everybody else who are going to use this around like first you parse the headers and then you got to go into this trace context header and then parse that thing multiple rounds of parsing there versus separate headers some of those optimization debates have felt a little easy without anyone plugging this into spring and other real systems out there seeing like what actually happens yeah yeah no I just want there to be code that marries the specs that they're writing over there so that people can look at it and talk about it so just write in stock awesome okay cool see you then great okay I think we're at the end of our hour this was a great call thanks again to the couch-based people for giving that awesome presentation and I would encourage Open Tracing people to follow up with some of this W3C work and start getting more involved in that group because they're starting to gel up a bit thanks to you guys for putting this stuff together we do you know do want to work with you and no reason we can't work together on buildings and loss paths thanks excited for next Open Tracing Meetup group yeah see you later


And you're watching beyond grenade today and today I decided to do a get ready with me video because I know that some of You might have a date night coming up with Valentine's Day coming so I'm gonna show you how I did this kind of like light Smokey kind of eye shadow look and a full foundation get full coverage and how to get nice big hair But before I do that, let me tell you about what I'm wearing this dress is from fashion queue It was about 25 bucks. It's really cheap and it has really really nice embroidery of some bling You guys know I like my bling but I will show you a full picture of how this looks on Instagram So make sure you follow me Instagram right now at Miz beyond grenade. So now let me show you how I made this look So starting off the only thing on my face right now is this moisturizer by be enigma And I also put on some chapstick by baby lips to give my lips nice and moisturized before I move on to a lipstick Now I'm gonna spray some of this Mac prep and prime spray I've seen this on a lot of videos. I decided to try it for the first time today. So we'll see once that's dry We're gonna add some NYX pore filler Which is going to help minimize the look of my large pores and add a really nice base before I use my foundation Another new product that I got is the Mac prep and prime in the color peach luster Which is this peachy color that's going to really help color correct under my eyes So I've really dark circles and this is going to cover them up even more So shout out to Jackie O who recommended this product and she also suggests that you just cover only your dark circles and dark spots Don't bring it down like a triangle like you would when you highlight So my camera kind of cut out But I'm showing you where I applied to any dark spots on my face and then once you do that You're just gonna pat it and blend it in making it much easier to cover up those blemishes Now I'm gonna grab my new favorite foundation, which is by L'Oreal. It's their infallible matte and it has such good coverage And it lasts all day long It's really good for those of us that have oily skin because it really does keep you matte So I just applied it to my face I'm using a flat kabuki brush to blend this all in the handle broke off, but I kind of like it this way I Then grab my concealer by MAC and this is the color in C 42 And I also have a flat brush like this one none of my brushes are brand name So can't really help you on that one But I'm gonna use this to highlight under my eyes and I'm also going to then bring this down the bridge of my nose Little bit on my forehead and then add some to my cupid's bow and my chin And Lastly, I'm gonna do it on my eyelids and this is gonna really brighten up your eyes Then once you look like a tribal queen you're gonna grab your beauty blender This one is by Revive Beauty. This is just a little probably three or five dollar one I got from TJ max and I really like this beauty blender because it has a point to it Which really helps get into the inner creases of my eyes and does a really good job at blending out all of my concealer To set my highlight I'm going to be using this banana powder by Vinay and a regular kabuki brush And I honestly was kind of hesitant to buy this powder at first because it is kind of pricey But I buy mine on Amazon for a little bit cheaper, but it honestly is going to last you forever I bought this maybe two years ago, and I'm not even halfway through the bottle And I spoke most of it one day, which you might have seen on snapchat But it does such a good job at blending your concealer and really highlighting under your eyes And it's definitely my favorite powder to use for setting Goodbye dark circles now I'm gonna grab my powder which is L'Oreal's true match in the color w7 And I'm using this brush from elf, which is their powder brush And I'm gonna apply this to set my foundation any place that we aren't highlighting Moving on to eyebrows I'm gonna grab this brush by Sina and first brush my eyebrows to get the perfect shape And then I'm gonna grab this pencil by NYC in the color brown And I'm going to draw on underneath my eyebrows to get that nice curved shape I really want to try the Anastasia brow wiz, but this one is like a dollar So we're gonna have to stick with this one for now after you outline your eyebrows You're gonna just do small little strokes to fill in any kind of like bulb spots And then you're gonna flip the brush and blend blend blend Then grab my matte concealer once again And it's going to really clean up underneath my eyebrows and then blend that away as well This will give you a more defined looking brow And then you're gonna do the same thing on top doing a nice line of concealer and then blending it out Grabbing my favorite palette by NYX, this is their highlighting contour palette I'm gonna go ahead with this lighter brown here in the corner And I'm gonna use this as my base for my lid.  Obviously practice makes perfect To outline my eyes, I'm going to use the Milani liquid eye.  It was about eight bucks I just love the handle on it and I'm going to use this just to blend everything together and remove any excess powder And to line my lips, I'm using this Santy lip pencil. It's in the color wood rose It was probably like a dollar and then I'm going to grab this color pop stingray Which is my favorite color from color pop right now, which was made by it's my ray ray Make sure you guys follow her videos as well And now let's give some life to this hair I'm gonna make it as big as I possibly can I'm just gonna grab my pick and just go underneath and just stretch those curls as much as you can And voila the finished look with the makeup and the hair So that is how I got ready today, I hope you guys enjoyed this video Please give it a thumbs up and remember to subscribe You also can follow me on Instagram at Miz Beyond Grenet and I post new videos every single Sunday So I'll see you guys next week. Thanks for watching Beyond Grenet today


Praise the Lord. Welcome everyone to class this morning. Thank you, Jafina, John Paul, Lubega, Zelatoli in our Adna for joining class. We'll begin. Can I ask John Paul to lead us in prayer please? Let's pray. Heavenly Father, we want to thank you for this morning. As we come before you, we pray to God that you would teach us and let your Holy Spirit minister to us. At this time be a learning for all of us of God that we would prepare ourselves to see your kingdom come in a very powerful way. Thank you for Pasasalina. We thank you for all of us who have joined this morning. We pray and ask for your grace to be with us this morning, God. In Jesus name we pray. Amen. Thank you. So we were looking at the developmental needs of children in various age groups. We began by looking at the common developmental needs for children across all ages and then we look specifically at the physical, emotional, mental, social and spiritual needs of children in ages three to four and five to seven, eight to nine and last class we began before we ended class we began looking at the developmental needs of children ages 10 to 12. So basically children who are ages 10 to 12 are in grade five to a seven. So how many of you work with teens and pre-teens are working presently, have worked with pre-teens or teenagers before or presently working with them? Okay, Jepina. Anyone else? Okay, Lubega as well. Thank you. Any of you in class have children who are pre-teens or teens? Anyone? Oh, Lubega. Okay, nice. Okay, so what do you think are the characteristic, you know, or the characteristics of children ages 10 to 12? Pre-teens. We've all been pre-teens. So what are the basic characteristics of pre-teens? Even if you don't have children for pre-teens or even if you are not have not worked with them or working with them, what are the basic characteristics? We've all been through a pre-teen and teenage stage so we should know. Yes, Jepina? I think it's a stage where you search for your identity. Mostly during the teenage, I kind of feel like that, like what you're doing and I think it's a stage where you also take some decisions by yourself. You don't depend on your parents much once you become a teen. I remember when I turned 13, all my brothers and they were all surrounding me and they said, hey, you turn 13 now. And I kind of felt like we thrown up suddenly all of a sudden. And I think it's the stage you also want to be mature. You get much more maturity about life maybe and also a stage where I accepted place was in my teens. So I think a stage of confusion even, like a lot of questions, what life is, what we are doing, what's happening, why we are living, all these questions I had when I was a teen. Before that I never had. Before that I just go to school, I come back, life was nice. And then once you become teen, you have a lot of questions like who's the real God, why there are so many religions, for what we are living, all these questions popped up. And yeah, so I think that's how teenage is. Yes, I think you've said so much about the characteristics of the pre-teens and teenagers. Good, it's quite fresh in your mind I think. Yes, Divya says friendships are very important. Yes, they're trying to find their place in the world. Yes, very true. Anything else? According to me, they are very, very inquisitive. They would like to know a lot of things. They are also good at shopping. They want to shop almost all things in the supermarket. They also, they don't go to church to learn the word of God. They only go there basically for fun, to show off anything. Dad bought them the new stuff, the clothes and the like. They also like visiting, but not to stay there. They feel safe, according to mine, because mine, they're all girls. They feel safe when they are home with mom and daddy, but they also want to go out. They want to go, like you take them to the beach, but when you are there, like looking after them, they want to shop a lot of things. One of my smallest things that the whole money in the entire world belongs to daddy and he keeps it in the bank.  So that's how they are. I think you're having fun with your girls, Lubega. They are typical girls. They love to shop. Sorry, love to buy. Nice. Yeah, like you said, it's an age where they're very confused. I think who you, Jefina said, but I think Lubega also said something just slipped my mind. Anyways, and I think it's a stage of bombarded emotions and we seek independence during the stage. Yes, the stage is when they want a lot of independence, freedom to think, to do, to express, to dress, you know, to do what they basically like. And yes, emotions are on a roller coaster because of the, the hormonal changes that are happening. Yes, anything else anyone else likes to add? They love to ask questions. Okay. Yes, basically, I think questions about, I mean, if you're more friendly with what kind of questions, let me ask you a bit, what kind of questions would I go on to qualify it? Different question, Ma. Morning. Different question, Ma. Okay, so basically, they like to hear new things. Okay, thank you. Like I have, oh my daughters are here. It's the same thing. And they always ask questions about life. Daddy, what about this? Daddy, what about that? I have my friends saying this. What is the meaning of this? So they used to, at least they used to, used to stop me all the time with different, different questions. So about life, even about about the universe, why, why some normally come out from the east? Why you go down from the, so different questions? So you used to bombard me with different questions. Questions. Yeah, I think you're beginning to feel like Google with all your children asking you a lot of questions. Yes. Like Lubeh said, you know, they're very curious. Yes, they're very curious to know about a lot of things because they're beginning to think more logically. And that's why they are asking more questions. And their questions can be never ending. But their questions can also be like, you know, if you tell them not to do something, they'll ask you, why shouldn't we do it? Why can't I do it? Why can't I go there? Why can't I wear this? Yeah. Jafina says, I think when it comes to questions, we also love to figure out the answers by ourselves than just relying on someone's perspective. Yes. Yeah.  And that's why they ask a lot of questions. But also they're very curious to know things, to know what the world and what's happening because they're learning fast and they're learning to be independent. So they want more information. And if they're not very close to their parents and their parents kind of put them off and don't discuss things with them. And their teachers are also annoying and not very friendly and not approachable in terms of discussing, hearing them out. They will look for answers in Google or with friends, basically with friends. And that's when they are led astray to all wrong kind of philosophies and ideologies and thought patterns and systems that are not really right. Yes. Anything else? Anyone else likes to add? Yes, Divya. Thank you, ma'am. Just in terms of the question part, I was also thinking about the curriculum that we have here. So it is basically built on these three pillars, knowledge, understanding, wisdom. So it's kind of, I think the elementary age, they teach the what, the what of things, like they have to memorize a lot of things during the elementary age. Then they go into the, you know, the middle school, where they have to understand like the why, why is it like that? So that is the understanding part. And then when they go to the higher grades, they teach them the how, like how to apply what they have learned from their, you know, elementary ages. So it's a biblical, like a Christian curriculum, but it's built on these three pillars, like knowledge, understanding, and wisdom. So I think they're trying to cater when you're saying these things and trying to relate, like maybe they're trying to cater to the needs, you know, of those age groups. Even we know how in the Bible it goes with Proverbs, yeah, knowledge, understanding, and wisdom. So the what, how and why, yeah. Thank you. Yes, thank you.  And that's why they are more practicals and all, you know, they begin, even theories for this age group, grades five to seven, they, the preteens, and then of course, beyond that eight to 10, the grades eight to 10, they begin to do theories, proofs, you know, trying to do various practical experiments, which they can learn. So they're trying to reason out things, not just like when they are in the elementary classes, where they're in a, you know, in a very fantasy mindset, where they're very, they just accept everything, you know, you just give it to them, they just, if you tell them the grass is green, because God made it, they will accept it. But in this age group, you know, they will think about photosynthesis and, you know, all of those things and all of those little little aspects, you know, just not that God made it green, but it's green because of, you know, they're trying to prove things and think two things more logically and reason out and prove things for themselves. Yes. So children ages or preteens ages 10 to 12, you know, they move from childhood to, you know, to into the adult world. Some of them really want to be adults. So they began, they begin behaving like adults, even when they are in grade five, six, seven nowadays, we have children in grade five, six, seven who are behaving like adults. So some of them clearly want to behave, think, act like adults, you know, some of them still in the very playful child, childish mindset, and they are forced to get into this whole transition, where they are trans transitioning from, you know, being children, being kids into being, you know, adults. And it's a very difficult phase, a challenging phase, we all went through that. It's quicker now than I think when I was in school, children are reaching puberty even more quicker and faster than, you know, when I was in school. And for them, the world around them becomes very, very complex. It becomes more complex for them, even as you're trying to understand, like Jeffina was saying that identity, who they are, you know, where they are, what is their purpose, what they're doing here, and things like that. So what to expect in this age group? Basically, girls develop physically faster than boys, physically faster than boys. Boys of this age can be very competitive, and success can be very close to their heart. When we say this, we're not saying, you know, everyone is like that, but we are saying most of them, you know, can be very, the boys can be very competitive, and success can be very close to their hearts. And if, and it's a matter of great concern for them, if they're not being successful in beating their studies, or, you know, if they're learning a skill like a sport, like playing an instrument, or, you know, some skill or activity that they're involved in, or some games, and they're not, you know, they're not growing in that they're not furthering in that, or they're not moving up, you know, they can be really concerned and worried, and that can, you know, trigger off mood swings, and their reactions, and they can be very negative, and they can snap back very easily. So this can be one of the reasons for the boys, especially. And at this phase, you know, the teens start developing best friendships, and their friendships are more based on their, their likes, their dislikes, their talents, what is their mindset, their thinking. So you can see, you know, even friendships can change during this age group, because if some of them are very studious, they love studies, they can easily bond with other students in the class who are prone to, you know, studying and discussing things, but if they are the very playful kinds, they enjoy playing sports, so they find friends who share their common activity. If some of them are the parting kind, you know, they love fashion, they love dressing up and all of that, so they find their friends. So it can also be a concern, because many of them who have been very friendly from grade or kindergarten to right up to grade five, you know, or grade six, and slowly they find their best friend, you know, no longer spending time, but they're moving out to different groups, talking more with others than with, you know, their own, their own best friend that they had during all of these school years. It can be very concerning and very worrying and painful for those who are feeling left out, because their friend has this kind of finding others engaging in means of discussing and going around with them. So this can be a major issue, and it can also be an issue in the children's church, and so you'll need to help children understand, hey, you know, it's not because you are bad or it's not because your friend is not able to relate to you or doesn't like you, it's just because they're more focused on what they like and they're beginning to see their taste, their likes, their dislikes, their talents, their skills, and they're finding people who can share their activities, you know, and so you can also find people who share your common activities so you can build up friendships and bonds better. So this is something very concerning for children, especially in this age group. We also see that, you know, even though they get very friendly and they're choosing their friend circles, their peer groups become very important, their relationships are very complicated.  Basically, they're moving from a childhood stage to adolescent and, you know, their relationships tend to involve a wider range of emotions and expectations and friendships can become more complex as individuals start to understand and deal with various feelings, conflict, and shared experiences. They also can be very competitive in nature, their friendships can be competitive in nature, particularly among girls because, you know, their competitiveness might manifest in various ways such as, you know, when they're vying for attention, they're looking for recognition and they're looking for being included in their social, within their social circles. So preteens may compare themselves to their peers, leading to a more competitive atmosphere in their relationships. So even though they're very friendly and they're looking for peers and their friend group circles are very important, these are some things that we need to keep in mind. Okay. It also, you know, their friendships are very, the dynamics are very changeable, changeable dynamics their friendship has, you know, because they're all undergoing significant physical emotional and social changes. And these changes can influence the dynamics of their relationship, their friendships may experience fluctuations, you know, as they, these preteens explore different aspects of their identity, which leads to shift in their preferences and interests and social connections. And that is why their friendships slowly change. And then, you know, they move on from their best friends or their, their, their friend circles to forming different clicks to forming different groups. Okay. And this is especially among girls. And research suggests that girls may experience unique social pressures, because they, it's all related to their appearance, their social status, their peer relationships, during this developmental stage. And all this contributes to the complexities of their understanding of their friendships and their relationships. And then they begin to be more affected by, you know, the standard and the types of their friends.  So they're just modeling their teacher. And, and we discussed this in the last class, how, you know, we can really invest in that age group, because we are their models. But when they come to preteen, suddenly, you know, their friends become more important, what their friends say do, you know, even talk about things in life, what they say about them in particular, all holds deep significance and influences them very deeply. And, you know, what their parents say, what their teachers have said so far does not really matter, but what their friends say really matters. And we also said that they become beginning to get very independent. They also develop a capacity to reason and work out things. And, you know, so this can be a complaint by some very cheeky smart talk, which they didn't have, you know, when they were 10 years old, I mean, when they were, yeah, basically, when they were six, seven, eight, nine years old, they didn't have this sense of cheeky talk in terms of, you know, reasoning out things with you, wanting to have their way. So, you know, we can get a little intimidated and angry, but, you know, we can also discuss with them in a very more fun, a smart way, you know, catching their smartness and just discussing and talking with them can also be very interesting and they can be fun to be with, okay. The next one is that, you know, the goals for this age, what are the goals for this age? They learn more about their strengths and their gifts. They're learning to get along with others well, even as their emotions on the roller coaster.  So, they're learning to get along with their friends because their friends are very, very important for them, okay. They're also learning how to resolve conflicts, not only with their friends, but specifically with their parents, yes, with their parents, because they're moving on to independence and the parents are struggling, they are struggling. So, you know, you need to help them how to resolve conflicts, how to handle their own emotions in a very mature and a very nice, healthy way. They're also learning, you know, to, they're also understanding the differences.  Some children can feel that the others in the class are growing faster than them, why they are not growing physically, you know. So, all of this can be a huge problem, you know, specifically, their looks can be a major concern for them. So, you know, it's important that this ages 10, ages 10, 12, 13, 14, 15, you know, to do a lot of teen sessions with them, where you can talk about self-image, self-value, how to handle emotions, how to resolve conflicts, media, you know, a relationship with their parents, how to handle conflicts. So, all of these topics can be useful and of course, you can speak generally on these topics but also, you know, base it on biblical principles and use biblical narratives and, you know, show them from various scripture passages what God has spoken about them and how they can handle their emotions and stuff like that. So, teen sessions are very, very important and we do have teen sessions for our children's church in this age group where apart from the normal children's church curriculum, we used to have additional teen sessions for them, okay, because they're basically trying to understand how different they are and accept their differences, their strengths, their weaknesses, just love and accept themselves for who they are. Now, we began looking at a few points last week and so we'll continue from that. We looked at all of these points. Basically, we stopped at how children in this age, you know, enjoy competitive sports and team games. So, they're very competitive. They love team games. They are very athletic so you can use games and activities that, you know, are competitive in nature and also team games. Also, they, you know, you know, encourage group participation, sorry, encourage participation in group chores in the classroom, you know, like getting them to clean up the area each week. Like for in our children's church, we used to request them to help up and pack up and, you know, stacking all the chairs and, you know, just kind of rolling up all the power cards, putting back some of the stuff in the storeroom because we don't meet in our own facility. We rent out other spaces so we have to do set up and pack up so we ask children in this age group, you know, to help us and so they can, you can give them, you know, some responsibility, teach them how they can serve in church. It's a good time to teach them to serve in church.  The juniors are more enthusiastic than the preteens. So this group, you really have to motivate them. But if you can get a whole lot of them to do it, then, you know, it becomes like a culture and because they have other friends are doing it, they would also like to do it. You can also get them to, if you're serving snacks, you can get them to help in serving snacks, PowerPoint presentation or, you know, setting up the LCD projector, the laptop and all of those things. Just get them to take on responsibility, teach them responsibility in church, how they can, you know, help at church, teaching responsibility for self and others in the group also will really help them. Practice service to others. You know, you can take them for a short mission trips where they can, or evangelistic trips where they can go to, you know, orphanages, home for the elderly, those who are the home for the needy, you know, take them, show them, let them minister there, care for them, help out in some way in these homes. Also, you know, get them to mentor younger children, encourage them. So when you're having group games for the entire children's church, you can have preteens and teens helping their younger ones, whether it's a Bible quiz or a game or an activity, you can get them to, you know, be in charge, take responsibility. Also, get them to supervise younger children. For example, if you are, you know, going out in the open space so you can get them to help in leading the kindergarten, the grade one, the grade two, to the place where you're having a common activity and all of those things and just overseeing the children there, helping them out and things like that. Also, get them to pray together and individually, also get them to lead out in group prayer so you can have them pray for, you know, various needs in children's church in the common gathering, or you can get them to pray for the offering or, you know, some child who's celebrating their birthdays, you can get them to do that. Also, a good age for them to memorize a lot of scripture, so you can have Bible quiz, you know, get them to memorize long passages, Psalm 1, Psalm 23, the books of the Bible, you know, the fruit of the Spirit, the gifts of the Spirit, what is love, you know, you can get them to memorize all of these scripture passages, get them to also memorize some of their favorite verses in the Bible, a good age for getting them to do this. The next one is, you know, it's important to teach them to treat others kindly, both in and out of class, of course, they treat their friend groups very, very well. Why do you think they treat their friend groups very well? Why do you think they treat their friend groups very well? Even if somebody in their friendship groups, you know, disagrees with them, they might not literally snap back or fight back in, they might say things in a very strong way, but, you know, yes, they need acceptance, yeah. If they're not accepted by their friends, thank you Divya, they need acceptance. If they're not accepted by their friends, it can be a huge, you know, emotional turmoil for them, a concern for them, because friends are very, very important, friendship group, peer groups are very, very important for them. It gives them a sense of identity. So, you know, so sometimes, even if they sharply disagree and have a disagreement and argument, that can, you know, really affect them to a great extent. So, you know, it's important to teach them how to, you know, be kind to others, talk about a good scripture passage to discuss with teens, pre-teens, or you can use the scripture passage for your curriculum is 1 Corinthians chapter 13, where it's talking about what is love, love is patient, love is kind, does not envy, does not boast. So, you can talk about love, you can also talk about Jesus' commandment about loving one another, you know, also talk about how to resolve conflicts in a peaceful and a mature way, how Jesus did it, how the early church did it, you know, you can talk about various narratives in the Bible. So, this is when you're thinking about the curriculum, you can think about these points and keep these points in mind. Also, you know, talk about how to speak the truth in love. Ephesians chapter 4 verse 15, okay.  Also, help them how to express their frustrations and their anger using calm words, how to calm themselves down, how to, you know, discuss keeping others perspective in mind, you know, and also seeking a resolution. Also, help them to, you know, develop these spiritual disciplines of praying, reading the Word, you know, how to serve in church, evangelism, you know, giving of their offerings, even if you want to help them to type, some of them get their pocket money, how to type so you can help them. And I think basically, they would learn all of these things when you take them for mission trips, you know, and show them. It has a huge impact. I remember when I was in Bible college, you know, I was going through a very difficult phase in my life and they took us to Mukti Mission, you know, and in Mukti Mission, this is a home in very close to Pune, the city of Pune, a home for, you know, women who are widowed, who are abused, who are divorced, and, you know, the girl child who's just abandoned, all of them are in this home, and specifically what really impacted me the most was I went to this room where they had all these women who were blind, and, you know, they were sitting and they were weaving things, they were making baskets, and that really shook me, and that really brought me out of, I was going through a very difficult phase in my life, I was totally depressed, but that really impacted me so powerfully, so I think, you know, pre-teens and teens are, you know, not only just independent, but they're always thinking about themselves, you know, and that is why they have the very curious, they're asking a lot of questions, also their looks and everything, so if you divert their attention to, you know, homes and children and people in need, you will teach them the value, you will teach them the importance of valuing what they have, being, you know, happy with what they have, content with what they have, and how they can give to others, so I think, you know, even when we have pre-teen and teenage children at home, you know, they're basically wanting to buy and buy and buy and shop and shop because they're having this competition with their friends, basically among girls, you know, and they want to look the best, they want to be the best, the best dress, and they're vying for attention, so they want everyone looking at them, and like Lubega said, they go only to church because, you know, it's not to worship God, but because of friends and attention seeking, so I think taking them for mission trips and evangelistic outreach, you know, outreaches can really help them and change their perspective of thinking and being very self-focused to being people-focused and how they can help and, you know, how they can give away things and how they can be content with what they have, okay? Any questions so far? Anything anyone likes to add? Fe? Nothing? Okay, there are no questions, queries, no one wants to say anything, we'll move on, okay? Children in teens, pre-teens in this age, sorry, pre-teen, in pre-teenagers, you know, they're able to understand more abstract ideas compared to the previous age groups, you know, where they understand concepts more better and which needs to be reiterated and, you know, have them to understand in a more realistic way. These children are able to understand more abstract ideas so you can begin to talk about the Trinity, you know, all of the doctrines like redemption, atonement, sanctification, the person and the work of the Holy Spirit, you can also talk about the prophecies, covenants, also give them a broad view of the entire, overview of the entire Bible about the historical settings, you know, and how, you know, the Messiah, that was Jesus who, you know, the incarnation of Jesus happened at a specific time in history, but how it was, you know, prophesied or it was made known from the very beginning that is in Genesis itself, in the Garden of Eden, so, you know, when Adam and Eve sinned, so how the Bible talks about Jesus from the very beginning, also you can teach them about the various books in the Bible and how and who wrote the various books, how it was written, why it was written, so you can get into deeper teachings of the Bible and basically you can teach them some of the courses that you are studying in the Bible college as well, also provide them with, you know, answers to deeper questions like who is Jesus, why did he come, you know, why and how does God love me, compared to other people who are loving me based on my looks and my social status and what I have and how I perform in school and how I behave and how good I am, you know, also their purpose in life, you know, why they are here because that's a big question for them, you know, why am I here, what am I doing here on this earth at this point of time, why am I living, what is the purpose for my life, so something that you can talk about in your curriculum, you can have these points as well, these topics as well, some of the spiritual messages they need to hear is that, you know, the salvation message, you can share the salvation message with them in a deeper, in a more clearer way, the way that they can understand, they can also, you know, lead them to accept Jesus Christ as a Lord and Savior and many of them would want to accept Jesus Christ as a Lord and save in this age group, also, you know, talk about, you know, God's wonderful plan for their lives, you know, and that God will never leave them nor forsake them and, you know, how they can trust God, that's very, very important, okay, they're looking at the world around and they're beginning to see that, you know, people around them are not perfect, even their parents are not perfect, their teachers are not perfect, you know, nobody's perfect in this world and who they can trust, you know, who they can trust with their feelings, their emotions, what they're going, what they're thinking, you know, some of them can be thinking a lot of unhealthy thoughts, you know, who I can share with, what I'm going through physically, emotionally, mentally, so it's a good time to teach them to trust God, to put that trust in God and that they can share with God anything they want because God is there and he's trustworthy and he's faithful, okay, also teach them about, you know, the nature of God that in a more detailed way, you know, that he's all-powerful, all-knowing, ever-present, so he knows what they're going through, he knows what they're thinking, he can work on their behalf, he can change things, he can help them, you know, identify themselves, love themselves, accept themselves, also how they can achieve and be successful. Remember, boys in this age are looking a lot for being successful and girls for more, for acceptance and loving themselves and, you know, accepting themselves and valuing themselves also for the boys, so you can talk about how God is all-powerful and also always present, present everywhere with them, ready to help them, so these are important attributes of God that you can talk about in a much detail, in a much deeper way, okay, and that, you know, they are loved by God no matter who they are, how they look, their social status, how they perform, you know, what is happening in their lives, God loves them very deeply and they don't have to do anything to make God love them, but also you can teach them that they are saved by grace and not by works, talk about how Jesus is the only way the truth and life, like Jeffina was saying, they're very confused about so many religions, so many philosophies, so many so-called gods and goddesses, so who is the truth, talk about the exclusiveness about Jesus that he is the way, the truth and the life, okay, and also you can, you know, begin to get them to share Jesus of God with others, which at this age can be a little difficult because they're very conscious, you know, if they talk about religion and God, their friends, whether their friends will like them, accept them, call them a holy joy, make fun of them, and things like that, but you can teach them in creative ways how they can share about Jesus, what just basically through and how, you know, their friends in their same challenges, so they can just share, you know, how God helped them and this will just, you know, be means when they're with others. What can we do as teachers, children's church ministers who minister to pre-teens, okay, be very conscious of the fact that they're going through physical changes, okay, and don't comment on their looks or their clothing or their style or in front of others. Of course, if there is, you know, a particular child is not dressing in an appropriate way and it's kind of going to be very uneasy for the teacher and for the other students, you can, you can, you know, speak to the child one on one, just explain things and, you know, try to understand why the child is dressing up in the way that he or she's dressing up and then discuss from there and hear their point of view, share your point of view and just help them to dress in an appropriate way, okay. They are looking for independence, so give them a certain degree of independence. What do you think are the areas that we can give them independence? Any thoughts? What are the areas we can give them independence? We're talking about in the children's church or Sunday school setup. Any thoughts? I don't know if I'm saying the right thing though.  But when I go to the pre-teens, they have specific spots, they have their friends, they want to be around them and I just make sure they can listen to the class from where they are. Sometimes they go way too far and I tell them to come little friend. But that's one of the areas I think I give independence whenever I go. Like, you can choose where they are, where they are comfortable where they can sit. That's one of the things that immediately comes to mind. Yes, very true. Thank you, Jeffina. I think that's so important. They, you can see one going sitting right at the back, you know, and they're hardly five or six students and the other five are sitting in the front and this one right at the back there. Okay. So maybe you can just allow them, what do you think? You can just allow them to sit down there as far as they are paying attention to you. You can get them to sit because, you know, if not, they can get very irritated and frustrated and you can, they can feel that you're treating them like a child. They would not want to come back to your class. Okay. Any other areas? Talking about the independence areas, we can give them independence. Yes, Lubega? I think we can allow them to cognitively be independent in using the Socrates method. They should ask you questions.  Say you over ask, you do this or that. You should allow them to ask questions. Of course, as a, as their trainer or as their tutor, you can guide them, tell them that let's ask on this very topic. So to avoid them going astray, but we should allow them be independent as in asking questions. Thank you, Ma. Yes. Thank you, Lubega. I think that's very important. Get them to ask questions too. Do preteens and teens ask a lot of questions in class? Lots, okay. So get them to, yeah. So get them to ask questions. And when, when they ask questions, you know, your response should be, yeah, I think that's a very important question. Thank you for asking it. I know what you're saying. I understand what you're saying. I can just feel what you're saying. It's so true, so right. You know, what do the others think? So even if it's a kind of a very silly question, for you, it can be silly. Everyone else is laughing, but you can say, hey, that's such an important question. Thank you for asking it. You know, so what do you, what do the others think? So that way is, I think it can be very encouraging for preteens and teens, you know, your response and the way you look at their questions and how you encourage them and how you respond to their questions, very, very important. Yes. Any other area where we can give them independence? Okay. I think you can think of that during the break and we'll meet up the break. Okay. Thank you, everyone.