get to meet some of the people that I've been working on modules with like the GraphQL module for for a few years. I never met them in person. So that's a really nice practice. Hi John, what are you up to? What are you up to? It's good to see we have the screens now. I was looking into this yesterday, like the speaking interview yesterday morning and I saw the big white screen in front of the windows. I was very happy that... Oh really? Yeah. You don't actually go cover the right machine. And I was like, but I build everything in Kino with animation. I thought, well, it's kind of difficult to slice in, I guess, to get my animation done. That actually worked. That was surprising. I won. No audio, though, so that's good, but no. But I really like the Kino presented to you that I can see right now. How long I've got and what it says, don't know what it says. I did that for previous presentation. It has the same, like it has a different energy as well. Yeah. But yeah, you always win the two butterflies with the same browser, right? So there's going to be some time to come. Thanks. Someone on the front row, yeah. No, no, no. I even won't have time for Q&A now. I'm kidding, a little bit. Don't worry, it's too early for audience participation. Yeah, exactly. Yeah. First row is great, best view. So these next to the Q&A laptop would make more sense. Oh, yeah. There's two chairs up front here. If people still want to sit on the second row, I see one in the middle here, one up front. Good morning. Cool. It's about 10.30. I got the signal that I can start, full room. I hope everyone's been enjoying Drupalcon so far. I also hope everyone is awake this morning. There's going to be quite a bit of code on the slides. Welcome to this presentation, building a GraphQL API beyond the basics. We're going to do a bit of a deep dive. My name is Alex on the far back. I'm lead frontend engineer at OpenSocial. That's my title. I've been doing quite a few other things, translation workflows, GraphQL API, build a real-time chat two years ago on top of GraphQL and Drupal. Programming for 20 years, 10 of those. I've been getting paid for it. Slide coffee addiction. My first Drupalcon was actually nine years ago in Prague. It's really cool to be back. A little bit about OpenSocial. We built community engagement platforms as a service. We work with purpose-driven organizations, some of which you see here on the slides. If you like what you see in this talk and you think you would want to work on this, come chat, because like everyone else at Drupalcon, we're always looking for Drupal developers. What is and isn't in this slide, we are going to talk about setting up a modular schema, how to use the GraphQL API. We're going to do a GraphQL module, how to do a deep dive, how the underlying GraphQL library works a little bit. I'm not going to talk too much about schema design and automated testing. You can find the slides for this presentation on my website, Alexonthefarback.com. Look under talks. There's also a link on this page to a GitHub repository that will be made public after the talk that contains all the codes you see on the slide, as well, and some more examples for things I couldn't cover. We're going to be looking at building a real-time chat, or at least the parts of it that we did for OpenSocial. The first thing we always start with at OpenSocial is schema design. And design is not there just to be a nice word. It's really there for a reason. We've got to define the goal of what we're building. We're going to look at some of the parts for the chat today, and we can capture that in a user story. As a chat participant, I want to be able to send chat messages and receive chat messages from other participants without refreshing my page so that I can easily communicate with others. And this captures a few things. It captures that there's chat participants, so there's going to be users that we want to have information about. We need to send things that's the mutation in GraphQL to be able to modify data, receive things which is querying, but also without refreshing. So that's where subscriptions come in. And if we look at what this looks like in OpenSocial, then we have an OpenSocial installation on Drupal. We have two browsers open. We can look up a user. We can send a message there using the input, and you'll see it pop up on the other side. And of course, we can reply, and that'll just update without refreshing. If you want to know more about schema design and how we get to the schemas that I'm going to show you, I recommend this book, Production Ready GraphQL. I spent about a year trying to figure out all of the GraphQL stuff, looking around the internet for best practices. Then I came across this book, and it basically contained everything that I'd figured out on my own. So for now, we bought this book for all of the OpenSocial developers, and we just give it to them to get started because it covers everything from security, schema design, schema evolution, testing, rate limiting, all the good stuff. So let's dive in. The GraphQL module, that's what you're here for. There's always a module for that in Drupal. GraphQL is no exception. There's actually two versions at the moment. They both use the web onyx GraphQL PHP library under the hood. That's the defective standard GraphQL library in PHP, follows the JavaScript reference implementation. All the contributions happen on GitHub, and both 3 and 4.x are actively used by the community, as you can see here. So why are the two versions? Version 3 basically gives you an entire schema out of the box based on your data structures in Drupal, and version 4 requires you to write those things yourself. You may ask, why would you want to do it yourself? That's actually what I prefer, because GraphQL is all about making life as easy as possible for the frontend application to get exactly what they need. And what a frontend application needs is usually going to be different from the way you store your data. So version 4 is also what we will be looking at today. And if you're currently using version 3 and you're thinking, hey, I want to get some of that version 4 goodness, but I don't want to do everything myself, that's thankfully where Jesus Olivas has done some work and created the GraphQL compose module. This works on top of GraphQL version 4 to give you some of those features from version 3 of automatic schema generation. He has been posting updates about this in the GraphQL channel on Slack, and you can find the GraphQL compose project on Drupal.org. So let's look at implementing our API. When we have our schema design, the first thing we'll do in the Drupal module is define a base schema. Everything in the GraphQL module works as plugins, and this is no different. Our base schema will contain some of our shared types and we'll later show how schema extensions can reuse those and build on top of it to extend the functionality. So we do this in our DrupalCon base schema, the PHP file, in the plugin GraphQL schema namespace, and we start out by just creating a class that extends a base plugin and has a schema annotation. The only thing we really need here is an ID that we'll use to reference later and a human readable name for developers, and we only need to implement one function, and that's our GetResolver registry. The Resolver registry is something provided to us by the GraphQL module that we'll dive into a bit later. For now we just create it and return it. Once we've created our plugin, we can actually start writing some schema files that the plugin can pick up. Here you see we define our schema with the three operations, as well as empty types for each of those operations. We name the types after the operations, but that's more convention than requirement. And on the right-hand side you see we define some shared types. At the top there's a date time which only has a timestamp. We could return a timestamp directly rather than wrap this in a type, but this gives us the opportunity in the future to expand it with other representations of time if we would like to. The second thing you see is the node interface. This is common in the relay GraphQL client to make refetching of data easier. We'll implement that when we get to chat messages later. And the final four things you see, the cursor scaler, the connection interface, the edge interface, and the page info type are all for the relay connection specification to help paginate long lists. They work particularly well if you want to do infinite scroll because they make you resistant against things like insertion and deletion within your list as you're paginating. With our schema defined, our module doesn't actually know yet how to get data for all of those fields when it gets a request. That's where this resolver registry comes in that we've defined earlier. So rather than returning it immediately, let's keep it around for a little bit and look at what we can do with it. If we look into the class itself, we'll see that there's actually one function that's very important to us, and that's the add field resolver function. As you can see, it takes some inputs and just stores those in an array. So let's look at the inputs. If we add the datetime example, we can see that it first takes a type. That's our datetime type in this case, and the next argument is a fields, which is the timestamp. The final thing we give the module is this resolver that will do some work for us, but we don't yet know where that comes from. So if we go back up to our schema plugin, we can add something that's the resolver builder provided to us by the GraphQL module, and that's what will help us get these resolvers. If we now call this function, again, adding the datetime and timestamp, then in this case, we can see that we can use the fromparent method to get a resolver from this resolver builder, and fromparent will just pass on the input that it gets. So input in this case is output. We can do the same thing for our other types and fields, but using different producers. In this case, we produce the connection edges data producer. We'll look at the implementation for that a bit later, and we map an input to it. Here we map the connection, which again comes from the parent fields. We repeat this for other fields on connection as well as our field on edge, and then we return our registry again, which now has these resolvers registered. As I mentioned, let's look at this connection edges data producer. Everything in the GraphQL module is a plugin, including these data producers. So this goes in the plugin GraphQL data producer namespace. Again, it's a class that extends the data producer plugin base, and we add the data producer plugin caching interface so that the module can do field level caching, and we have our data producer annotation. We give it the ID, which we just saw when we were calling resolver builder produce, as well as human readable name and description. We give some information about what output it produces and what it consumes, and here you see this connection that we mapped into our data producer with the map function. This plugin only needs one function implemented as well, which is the result function, and here you can see that it gets this connection interface connection, which is the input that we mapped, calls edges, and that creates its return type. So this is how you would create custom data producers. That could be a lot more complex than this. We would do the same for all of our other fields, but I won't bore you with that. With some of the base schema types defined, the next thing we do is we define a schema extension. This is another plugin, so let's create a plugin file. This goes in the plugin GraphQL schema extension namespace. We pull in some things from the GraphQL module again, and we define our plugin class using the STL schema extension plugin base class. The annotation we add here is almost the same as the one for the base schema. We again add an ID, a name, and a human readable description, but what we also specify here is the base schema that we're extending. So that's where our Drupalcon ID comes back, and that's how the module knows when loading the Drupalcon schema that it has to include this schema extension as well. So with our plugin class defined, our annotation defined, again, there's only one function that we actually need to implement, and that's our register resolvers function. We don't create our own resolver registry here, but we actually get the one that we returned from our base schema, and we again make a resolver builder so that we can add our fields to it. Once we've created this class, we can again start defining schema. So where a base schema will only have one schema definition language file, our schema extension will actually have two. The first one we look at here is dot base dot graph QLS, which defines any new types that the schema extension wants to define. So we'll have our chat message type which implements the nodes, which has an ID, send time, sender, and some content. The content can either be a message from a user. This is the union that you see. Media chat message content contains only text. It can also be a user event, for example, someone joining or leaving a chat group, or it could be a deleted message. And if we look at the concrete types for those, we see our media chat message content with the text fields, the user event chat message content, which has an event type, enumeration, either conversation created, join or part, as well as a subject who it happened to. And our deleted message content is a little bit special because GraphQL doesn't have empty types, but if a message is deleted, there's nothing there. So we give it the underscore Boolean fields that's nullable, that's not a queryable field, but it does give us a concrete type. Similarly, we implement concrete types for pagination, so you see the connection here again, and we create some inputs for our mutation. So you can send a user chat message, you have to provide a conversation ID, as well as the message content, and the message content in this case always has to be text. We don't put text in our chat message input directly because we want to be able to add fields to this in the future, for example, when we start adding media support. Finally, we create a payload type, and this input payload pattern is something we use a lot in OpenSocial because it makes mutations very predictable. You may be tempted when using mutations for the first time to reuse input and output types, but you'll find quite quickly that they're going to deviate slightly, so it's easier to just take some duplication and create a bespoke type per mutation. So with these new types defined, we want to hook this into our existing base schema, and that's what the extension that GraphQLS file comes in for. Well, you can see here we extend the type query that we defined earlier without any fields, and we now add the chat messages field that will return our connection, as well as the chat message field that allows loading a single chat message. Similarly, we define the mutation and the subscription. The GraphQL module itself doesn't support handling subscriptions, but it does support defining the schema for your subscription, so you can add a service next to it to actually handle web sockets and real-time data. The reason that we need to split up these files in our schema extension is because when the GraphQL module is loading all of these things for the GraphQL library, it needs to make sure that everything is in the right order, so we don't try to extend a type that doesn't exist yet. So this way all of your new type definitions can be first in your completed document and extensions come last. Again, with these schema definition language files created, it's time for us to tell the GraphQL module how to actually turn a request for those fields into data by filling in a resolver registry. I'm not going to show you all of them, but I want to highlight some that show some new functionality of the resolver builder that we haven't seen yet. The first one is for our chat message field, which takes the ID of a chat message and returns a chat message type that actually maps directly to a chat message entity in Drupal. We can use a built-in data producer from the GraphQL module here, which is entity load by UUID. It takes two inputs, the type. In this case, we use a hard-coded value, which is chat message, and we can do that by using the from-value data producer from the resolver builder. And we also take a UUID, which is actually the argument of ID that we had on our chat message fields. The next one to highlight is the chat messages fields on the query. This uses a custom messages data producer. That is a little complex. It takes five inputs, the after, before, first, last, and reverse. These are all arguments from the fields. And showing you this data producer could be a talk on its own. If anyone is interested, you can find the implementation on GitHub. Basically, what we've done is we've created an entity connection class, which contains all the complex logic of figuring out how to do proper pagination, making sure that it respects the right values, never misses anything. And we've created query helper classes that will contain the actual logic of what am I trying to paginate? Is it a user? Is it a chat message? And this allows us to keep some of the difficulty at bay. So if you want to do this in your own project, you can find these implementations on GitHub. The other one, I said we had the deleted chat message content, which had a field you couldn't query, but just to make sure that our linting doesn't complain about unmapped fields, we are going to map our underscore fields to having a static value of null. And you can provide static values, again, with the from value resolver builder. Finally, we had one union in our schema, which could return one of three different types. That was our chat message content. And because the GraphQL library needs to know how to resolve fields for the type it got back, it actually needs us to tell it what concrete type that union returned. And for that, we added type resolver. So this is a similar method to add field resolver in our resolver registry. It'll just keep an array behind the scenes. And we give it the name of our abstract type, the union, as well as a callable, in this case, a class with a static method. If we look at that class, it's quite simple, actually fits on a slide, has a single function, gets the resolved value, the chat message content, will simply query its type, and the return value is a string of the concrete type. So after calling this, the GraphQL library would know what the concrete type is, that it needs to continue resolving values for. Finally, the last one to highlight is mutation resolvers. So mutation has an input and output that we want to register. And at OpenSocial, we create a little pattern for it. This register mutation resolver is a custom function. And the implementation is about this. Because we always know that we want to have an input type and a payload type, as well as split up our data producers in two. You can see here, we use builder-compose at the bottom to actually compose the inputs and outputs of two data producers together. The first one is the field name underscore input. What that does in OpenSocial is it will validate the input, make sure that everything is there, that should be there, or return an error early. And the second data producer will just be the name of the field name. That can take a validated input, and actually focus only on the business logic. So this lets us split out some of the hairy things for input validation that we needed to do. So, as I said, GraphQL doesn't support, or the GraphQL module doesn't support handling subscriptions because Drupal doesn't really do async well. So we solved that by putting an extra service in front of our Drupal site that got new messages through RebitMQ, took in a subscription request, and converted that to a query. I did a talk about this on GraphQL Galaxy. If you want to know more about this, and I'll try to include the code for this in the GitHub repository as well, because unfortunately I don't have time to go over it today. But with all of our schema, our schema extension defined, as well as informed our GraphQL, the GraphQL module of how to map the schema to actual functions that we can execute, we can take a look at what it takes to take an HTTP request and actually turn it into data. So that's the journey of a GraphQL request. GraphQL itself as a specification is transport agnostic, but within Drupal you'll pretty much always use HTTP requests. So the first thing we do is we get an HTTP request in Drupal. It'll figure out that it's routed to the GraphQL controller, and it'll upgrade some of the parameters in the request into a class that we can actually use later. Once it knows it's a GraphQL request, it'll call into the request controller, handle requests function of the GraphQL module, and this will check if it's a batch request, i.e. containing multiple GraphQL queries or operations at the same time, or whether it's a single request. If it's a batch request, it'll just loop through each sub-request and then continue as if it was a single request, but if you were using GraphQL in, for example, a React PHP environment which has an event loop, you could go and process all these at the same time. The next thing it does is it'll find the server operation or the server entity that I omitted in this presentation, but in GraphQL you create a server entity that takes the schema we created, and it'll call execute operation in that server entity. So we can dive into that function. The first thing it gets is this operation parameters, and that is actually what was created by this route upcaster from the request. The first thing it does is it calls into the GraphQL library to get the current implementation factory because that is unfortunately some global scope, and we'll replace it with our own. So this is actually a Drupal service, so if you ever find that GraphQL doesn't do what you want to do, this could be a place for you to hook in, just replace the GraphQL executor service with your own. The next thing we'll do is we'll load the configuration from our server entity, and we'll dive into this function in a little bit because it's quite interesting. Once we have our configuration, we actually go back to the GraphQL library and let it do most of the heavy lifting by calling the helper and execute operation with our newly created config and our operation. We check the result to make sure that it's cacheable. Even if we get back a result that's not cacheable, we make sure that Drupal knows that it's un-cacheable, and then we return it. Whatever happens, whether it went right or wrong, we make sure to restore the previous implementation factory. So as I said, the configuration function on the server entity is actually quite interesting because it gives us a lot of power, and it's also a good place for you to hook in if you find that something you want to do is missing. It consists of two main parts. The first part is actually getting the GraphQL schema manager service. And it'll load the schema that's configured for this server entity. And that is actually the schema plugin that we configured at the start of this presentation. This gets loaded here. What you see in the last three lines is that it'll actually check if the schema implemented the configurable interface. This is something we didn't do, but there is a composable example in the GraphQL module that uses this interface, and it allows you to actually decide which schema extensions you want to load rather than just loading all of them that have specified our schema in its annotation. The next thing we do is we get our resolver registry. So this actually calls that function on our base schema that we started out with where we created a new resolver registry, and it'll have our populated registry that will pass to the GraphQL library later. Next up, we used the server config class from the GraphQL library, and we start populating it. We can control what kind of debug information we want. This is exposed through the UI of the server entity. Can enable or disable query batching if we have that need. We can set validation rules. The GraphQL library provides a large set of validation rules that are enabled by default by the GraphQL module. If you want to change those, then this would be the place to override. You could take the override to get validation rules, modify that as needed, think about rate limiting, complexity limiting, all those fun things. Next up, the persistent query loader. We skipped over this a little bit. One thing you can do in GraphQL is rather than send your query every time, you can register a query, get back an ID, and just send the ID every time. I think there was some work done for supporting Apollo automated persistent queries, but if you want a different implementation, this is the place to do it again. Next, we actually set the schema in the configuration object, and here we call the get schema function on our base schema plugin. And what that will do in the base plugin class that we extended, we'll go out, fetch all those GraphQLS files, parse them, get all the files for our schema extensions, parse those as well, and then give an abstract syntax tree to the GraphQL library that it can actually use to figure out how to resolve our requests. Next thing we do is promise adapter. So as I mentioned, within a React PHP context, you could do this asynchronously, but within Drupal we need to do this synchronously, so we use a sync promise adapter. And finally, we set some context that will be available in all of our resolvers, which in this case contains our plugin, as well as the parameters for the entire request. And finally, we set the field resolver, which will actually be a function that the GraphQL library calls to resolve a field. And that's a function we'll dive in a little bit deeper later as well. When all of that's configured, so there's a lot of things you could change if you wanted, we return the server configuration, and we're back into execute operation where we can call this helper execute operation function. So without code, let's look a little bit at the call stack of where that goes through. So we have our server entity execute operation that calls to execute operation on the helper function, and this does a few things for us. It ensures that we've properly set a scheme, ensures that the server supports query batching if this is a query batched operation, validates the parameters against those validations that we set, determines the operation to execute, make sure that if it's a get request, we only do query operations because mutations require posts, and any error rendering handling is applied here as well. Next up, it'll call into the GraphQL class promise to execute, sorry, that will actually apply our validation and call on to the executor promise to execute. So that executor is actually created by that execution implementation factory that we created. So this comes back to the GraphQL module. So we try to let the GraphQL library do as much as possible, but in some place we come back to the module. And this will actually create an instance of the configured executor, which by default is the one provided by the GraphQL library because why do everything yourself? So when we go, we wrap the executor for the GraphQL library a little bit to implement request level caching, so we check if this is cacheable, and if we do, we execute it in cached. We try to find an existing response and return it if that's possible. If not, we execute it uncached, and then we go back to the reference executor, do executes and execute operation. Here we check if it's a mutation because if it's a mutation, then we have to actually process every mutation field one by one since they contain side effects. So if the second mutation calls an error, we don't want to execute the third and fourth. If it's not a mutation, so a query or a subscription, we can process every top level field at once and basically do it level by level. To resolve a field, we call the reference executor resolve field function, resolve field value or error function, and then we have this placeholder, which is the actual resolve function. So that's where we get back to some of our own code. This was provided by the GraphQL module. That resolve function was set when we called getFieldResolver, and this looks like a lot, but if I remove some of it, then we see that what it returns is actually a function that takes some input and it makes use of this registry that we had before. We can look at the inputs. The value is the parent type of the field that we're resolving, or the root value of our server config. So if you have, for example, a connection with edges, this value would be the connection that it could use to get the edges. It has arguments for the field, so for our chat message, this would be, for example, the ID. The context that we set in the server config, if you have some advanced use cases, this can give you more information about the query itself. That should do some optimization. And finally, info contains some info about your schema, like the field definition, any subfields that there may be. If we look in this function, we can see that the first thing we do is we take our resolve context and we create a new field context. This is used so we can do cacheability information on a field level as well as on a request level. The next thing we do is we call the resolve field function on our registry. So this is actually the registry that we created in our base schema that has been passed all this way. Finally, once that gives a result, we'll check for any caching metadata that we need to store. So let's dive into that resolve field on our registry. The first thing we'll do is we'll call get runtime field resolver with those arguments that we got. And you can see that here at the bottom, it just delegates to get field resolver with inheritance for the parent type and the field name. You may already be thinking that that's a lot like the array that we were filling before. And if we look at that, then you would actually be right. So the field resolver with inheritance first tries to get the field resolver for the type and field explicitly. If that works, it'll just return that resolver. If that doesn't work, it'll check if the type that we were trying to get a resolver for implements any interfaces. So what this allows us to do, for example, is we had the message connection for which we didn't actually map any resolvers, but we had mapped our resolvers for the connection type itself. So this allows us to reuse some of those resolvers. It'll loop over the interfaces, try to find any resolver there, and then return. And if you look at the bottom at the get field resolver function, this is actually the mirror of our set field resolver function. It just does an array lookup and returns what we set there. If we go back to the resolve field function, then we'll try to, if we got a resolver, we'll actually call the resolve method on it. And otherwise, we will call the default field resolver provided by the GraphQL library. It doesn't do a lot, but it knows how to do object access and array access. So if your types are really simple, you could use that. But I would recommend just implementing your own things and being more explicit about how you want to resolve your fields. The final thing we're going to do in this presentation is take a look at actually some of these resolvers that we've been creating with our resolver bundle, because that's the last bit of magic I want to demystify. The from argument method on the resolver builder actually instantiates this argument class. And you can see it implements the resolver interface. We gave it one argument like when we created it, which is the name of the argument that we want to fetch. And you can see that the resolve function is actually quite simple. It gets a lot of this data. And the only thing it really looks at is this arcs object that contains the arguments that were provided to the GraphQL field. And we'll try to fetch the argument off that field that we wanted. You may think that the custom data producers that we created with produce is just as simple, but those are slightly more complex. We don't actually call our data producer plugins directly, but they're actually wrapped in a data producer proxy. So what you'll see here, we'll call this prepare, which will actually get the right data producer plugin. When that's done, we'll do some magic with the context. And that was actually where you saw this map function and where in the annotation, we defined this consumes connection property. This basically does the plumbing for that. And it'll also take care here of field level caching if it's needed. So if caching is enabled, tries to load the cached value for this field, otherwise resolve the field, store the cached value. If caching is disabled, just always resolve it. And when you know all of this, you actually know how you go from the left query all the way to the right. I know that's already been a lot, but if you want more, there's things to talk about, like testing, directive, schema design, custom validation, query loader plugins. We hang out in the GraphQL channel on the Drupal Slack. You can find me on alexanderfarai.com or on Twitter slash kingdutch. Bless you. I was asked to remind you of contribution opportunities there today, tomorrow, Friday. Also, please fill out session survey as well as the general conference survey. Thank you. Actually, time for Q&A. Didn't expect it. Hi, I have a question. The database is just a Drupal database, so just relational database for the actual data you load in, right? Yes. And I've seen that you're using UUIDs and it's hexadecimal stuff as an entity ID, but I thought the entity IDs in Drupal are always integers because we are running in problems, we are developing to a graph database or RDF and graph debate. And it would be really nice to just use the eries or URIs as an entity ID, but Drupal's core on a lot of modules always want integers as entity IDs. So how do you solve those problems? Because I saw you just making UIDs. Yes. So you're correct that Drupal uses numeric IDs pretty much everywhere, but I think as of some Drupal 8 version, they also make UUIDs for every entity. So that actually, if you look at the entity type manager, there's a method there to load things by UUID and that is what the entity load by UUID data producer uses under the hood. So if you're doing anything with decoupled applications, I always advise against giving out to Drupal ID but use UUIDs instead. Two reasons. An ID is really easy to confuse. If I have number two, I don't know if that's a user or a chat message or something else entirely and if you're doing things like delete operations, that's a big deal. If you're using UUIDs, then those should be unique across the boards with the asterisks of collision that are very rare. You're lucky if we run into them. So if you try to delete a user with a certain UUID that's not actually a user, you just will get an error and won't be able to do it. So yeah. If you want to use UUIDs, I guess create a custom property on all of your entities and create a custom loader. But can your UUID maybe just be the UUID with some prefix and then... Yeah, it's a bit of a semantic web. You just want to point to one Erie and it's unique in all the web. And we... Oh, sorry. Yeah, we just want to use it as a UUID because it's not... In our database only, it's about the web stuff and semantic web stuff. And so you want one URI for one object and we want to use this one and not going the way through Drupal database, mapping, entity ID to URI and then going back to the graph database where it's... The ID is a URI. You want directly to store those data as managed also by Drupal. But I wish to look up the UID manager. Yeah, so a good thing to keep in mind is that the ID type in GraphQL is actually defined in this specification and it's supposed to be an opaque type. So specifically your client isn't really allowed to touch it or shouldn't care about its format. So if you just want to pass URIs around as if it were IDs, you would have to implement your data producers to figure out how to do that. But your clients shouldn't really know any better because they're just IDs that they give to your GraphQL API and get back. Any more questions? Thank you. Enjoy the rest of the conference.


Welcome to JSA TV Live. This is the live streaming news source for DataCloud USA. And today we are coming to you live from beautiful Austin, Texas, where we're hearing from thought leaders around the tech telecom and data center space. I am Keeley Dorian and joining me right now we have Stuart Lawrence, Vice President of Product Engineering with Stream Data Center. So thank you so much and welcome to JSA TV Live. Thank you so much. Great to be here. Hook'em as they say in Austin, Texas. Great show so far. Great panel this morning. Having a good time. That is really excellent to hear and you can just definitely feel the energy, lots of people just excited to be all in the same room together. So let's dig right in and let's talk a little bit about Stream. Just for those of us who don't know can you just share a little bit more about what you guys do and where you're located? Yeah, happy to you. So Stream Data Center is part of Stream Realty located in Dallas, Texas. We are a full slate developer of data center sites. So we'll do land, we'll do corn shell, we'll do fully operated MEP fit out facilities. Typically we work with Fortune 100, hyperscale type customers on wholesale type deals and you know, in-house engineering, great operations team. We work across the spectrum. Always a lot going on I'm sure. Lot going on, yeah and we've been around since 1999, right? We've built over 25 data centers now. We've got a raft of facilities and campuses that are underway for our customers. So yeah, we've had our challenges as with everybody else. It's been an incredible last couple of years but we continue to be trusted and asked to deliver and so far, touch word things are going well but very busy, absolutely. Well let's talk about you for just a moment here. If we can, back in May, you were named the vice president of product engineering at Stream. So congratulations for that. What exciting things have you and your team been working on for your customers? A huge amount, right? So not only dealing with supply chain, figuring out how we can adapt certain things, what we can do with our design to make it more streamlined, to be able to deliver faster in budget on time for our customers, right? We've been developing new fan wall technology for our cooling platform. We've been looking at how we build on the topology that we've currently got for electrical design, specifically for some of our hyperscale customers that have some different redundancy requirements. So I've been extremely busy working with construction, working with design, working with our consulting engineers. Not a lot of sleep over the last six months but it's been fabulous. Yeah, I'm having a thoroughly good time at Stream data centers. Well, you know the saying, no rest for the weary. So you're just going to fall into that category, my friend. The one I know is no risk for the wicked. So, yeah. The wicked or the weary, can we say both? Well, you guys have also been very busy on the customer front. You recently, Stream recently announced it was selected as a trusted data center partner by T-Systems. Can you share some of the details about that and why that was just a good fit for both of you? Yeah, you know, it's sort of indicative of us with all of our clients, right? So, Stream, like I said, privately held since 1999. We are a trusted vendor to all of our customers and that's because we are very candid. We never get over our skis. We try to honestly portray exactly what we have coming and we generally deliver what we set out to promise, right? So, a lot of the time, the things that we bring to the table for our customers are just very, very good clarity in the supply chain and what's going on and how we're going to deliver. And so, they trust us. There's a very high depth of trust and we continue to do that. So, you know, coupled with, I think, a very good understanding of the facilities in general, electrical topologies, the mechanical side of the equation, you know, we can deliver the goods when it comes to that side of the house. And speaking of that trust, I mean, you really do have a very good industry reputation. I've read a stat, I've got it right here.  Do you believe it's because of that level of trust that you have established with them? Yeah, I mean, you get found out very, very quickly by those folks, right? If you can't deliver what you promised and I think that shows, you know, over 20, what's it, 23 years now, Stream has been operating. We've never ever been sued. We've never had a client terminate early on a contract. We've never had someone leave and sue the company. So, very reliable, very honest instead fast. And so, I mean, I think that just shows most of our clients would like us to deliver more capacity, right? So, but we're not going to get over our skis. We're going to stay to the course. And we will grow. And we've been doing that tremendously, but without getting outside of our comfort zone, I think. Yeah, absolutely. And so, any sneak peeks of what you can give us, what's to come in 2023 for Stream? You know, so, we're already ordering for 2024, actually. Most of our infrastructure for 2023 has been ordered and paid for a lot of it and it's on its way. And we've got a huge amount of capacity and some new geographies that are coming out will be announced fairly shortly. One of them got leaked, actually, a few months ago, but now we'll continue to build on the sites campuses we have. We have, like I said earlier, we've been working pretty hard on a cooling platform in the background that gives our customers a lot more flexibility and freedom and allows us to construct in a better way. So, there's some of that coming. Just, you know, small improvements along the way, make sure that we iterate correctly and keep sailing tight. So, where can people go now that you've given us these teasers, how can we follow you and where can we go for more information? Yeah, streamdatacenters.com, I think, is a good place to start. I think, you know, a lot of the folks that are in site assessments and looking for land and stuff know us pretty well, but for anyone who doesn't, you know, the usual social media outlets, we're here and come and talk to us. Yeah, we're, we might not have a lot to sell you, a lot of our customers have taken it all, but we're always open to developing. We'll develop and sell you a piece of land. We'll do a show. We don't have to be tied to a whole, you know, the whole facility, as it were. Well, thank you so much for stopping by. I hope that you're having a great conference and that you enjoy the rest of it. So, thank you very much for joining us here on JSA TV and thank you for joining us as well and it's always happy networking. Hello and welcome to JSA TV Live. We are the live streaming data source for news here at Data Cloud USA. We are in sunny Austin, Texas today on the floor at Data Cloud USA and I'm Keeley Dorian. Joining me right now, we have Naren Dunerum. He is the business development director for Airtel. Thank you so much for joining us and welcome to JSA TV Live. Nice to be here, Keeley. Thanks for having me. Welcome. Well, let's start right off with some good news. Actually, just this week, your subsidiary Nextra by Airtel had a really big announcement about using green energy, something we're hearing a lot about in the data center space lately. Can you just share some details about that announcement with us? Yeah, absolutely. I'm very excited about this announcement. Nextra data center is the largest data center provider in India and they have partnered with Bloom Energy to deploy fuel cell technology in India in its data centers and obviously to reduce the carbon emissions and also unlock the cost and sustainability benefits. And to start with, Nextra will be deploying natural gas and eventually migrate to hydrogen without any significant investment in the future. So Nextra data center has a vision of achieving net zero by 2031. In line with that, there is a lot of effort and initiatives with regard to sustainability. So the Nextra data center team has embarked on a journey to deploy new innovative energy solutions in India and they want to set new benchmarks in the Indian data center market because India is emerging as a lead destination in the APAC region in terms of data centers. And I'm very proud to say that Nextra data center is the first company in India to deploy fuel cell technology, right? And also, Nextra data center has committed investments to the tune of 600 million plus US dollars to build more capacities, to increase the capacity by almost three acts over a period of next three to four years time. It's always exciting to be leading the pack, that's for sure. Let's take a step back and talk just real quickly about Airtel. Of course, you're very well known across India for people in the US though, for US viewers who might not be familiar with Airtel. Can you just give us the quick overview of what Airtel is and what you do? Sure, absolutely. So Airtel is a leading Indian telecommunications company, service provider with global presence. And so Airtel generates about 14.5 billion US dollars in terms of annual revenues. And it's broadly classified into two groups. One is the consumer group and other one is the B2B group. On the consumer side, Airtel is presented about 17 countries in South Asia and Central Africa. And here's the fun fact. Airtel today has about 491 million wireless subscribers and that makes it the second largest wireless operator in the world. On the B2B side, Airtel is the provider of choice for the top enterprise customers, government customers and also the SME customers in India. And on the global front, Airtel caters to some of the top global carriers, OTTs, across the globe. So that's on the global business side. And Airtel operates at a very massive scale in terms of infrastructure. It operates about 12, owns and operates about 12 hyperscale data centers in India. And it has about 120 H data centers. On the network side, Airtel owns about 355 K route kilometers of fiber, terrestrial fiber and about 365 K of subsea fiber network connecting about 200 of its global pops, right? So Airtel offers a wide portfolio of services ranging from data center, co-location, managed services, network connectivity, IP transit, CDN, collaboration services, cybersecurity and also cloud solutions. So Airtel is very uniquely positioned in terms of owning data center assets, in terms of owning network assets and also the eyeballs, both B2B and the consumer eyeballs. So that's the biggest value that we bring on the table for our global customers. Definitely a wide footprint and a lot going on. So you were talking a little while ago about sustainability and a lot of the sustainability efforts that Airtel and Nexra by Airtel have. I would just like to ask you generally because we're hearing a lot about sustainability and data centers here at Data Cloud and then just across the industry right now. You know, there are some markets that have very stringent policies that data centers are having to put into place, California for one here in the US and then of course other markets globally. How do you think that is setting up companies like yours and others in the industry to innovate and do better and put better practices into place and how does that just help us overall? That's a great question, Kili. In fact, sustainability is the biggest, it's the hot topic today in the data center industry. I see in this conference a lot of people talking about sustainability and yes, as more and more data center companies are inclined towards deploying sustainable solutions, I think the regulators are becoming more and more important to the data center industry. And yes, California has always led the nation in terms of developing and implementing new sustainability policies. And yes, Singapore also was an early adapter of renewable solutions, but they did the biggest thing of switching from fossil base to natural gas. And of course the European Union also passed a lot of regulations and the reason passed I think in 2020. You know, they came down quite heavily on all the data center companies and they've even kept a target of going carbon neutral by I think 2030 or something like that. I think these stricter regulations are definitely having an impact on the data center industry as a whole. And coming back to our market, you know, this is definitely spilling over and the Indian government has got an ambitious plan of going 50% clean energy by 2030, right? That's quite a aggressive timeline, but I think we are already headed in the direction. And also the data center ecosystem in India is adopting quite well to this change. And now companies are looking at alternative renewable energy sources. They are getting more efficient on the power utilization, they're optimizing power consumption and they're innovating new innovative technologies. And of course, trying to reduce the PUE, right? So yeah, definitely it's having a strong impact on the data center industry as a whole. And next to itself, as I mentioned earlier, you know, we have a vision of going net zero by 2031. And you're being recognized for your sustainability initiatives among other things, I should say congratulations because Airtel was recently named as a finalist in the Global Carrier Awards for the best ESG or environmental social and government, governmental excuse me initiative as well as best security. So congratulations and can you just share a little bit about why you were nominated in those two categories? Yeah, sure. So as you know, this Global Carrier Award is happening in London next month and we are very excited about it. And we got nominated in two categories. One is of course the ESG initiative and Airtel has taken a number of initiatives on the ESG space. We have implemented some of the global best practices in our data center and the network businesses and of course we are all the time innovating, trying to bring in some new innovative technologies, the fuel cell being one such example. So all that combined, I think we have got a spot in the nomination and I'm really looking forward to this event. And the second nomination is on the security innovation. We presented our ISOC, which is the security knock, ISOC capabilities. So we have rolled out a next gen ISOC platform and we have something like about 10 plus offerings for our enterprise customers. So this is something very innovative in a market like India. So that's what got us into the nomination list. So I'm very excited about it and hopefully we should see something coming up next month. Well, where can we stay tuned and how can we just generally keep up with what's happening with Airtel? Okay, so you can, for Airtel, you can go to Airtel.in oblique global business and for data centers, you can go to Airtel www.nextra.in. Well, great, lots of great things happening. So congratulations on a good year so far and we'll watch out for plenty more to come this year and into next year. In the meantime, thanks so much, Naren, for stopping by JSA TV. Enjoy the rest of data cloud and thank you for tuning in to JSA TV Live and as always, happy networking. Hello and welcome to JSA TV Live. We are the live streaming news source for data cloud USA here in sunny Austin, Texas. I'm Keeley Dorian and joining me right now, we have Kurt Friesen. He is the director of North America for the International Data Center Authority or IDCA as you might be better known. So welcome, Kurt, welcome to JSA TV. Thank you so much, we're thrilled to be here. Well, we hope you're having a wonderful conference so far, how's your experience been and what really attracted you to come here today? Well, I mean, we are kind of in my backyard, so that helps, but there's a really great attendance here at data cloud. I'm actually really pleased with the results so far and the turnout, the conversations. Buffy, thank you so much for the panel you hosted yesterday on diversity in the industry, which is a big deal, but we're at a beautiful resort and we're having a wonderful time. Absolutely, and absolutely a big shout out to our colleague, Buffy. She did a fabulous job hosting, not one, but two panels. But let's talk just a little bit more generally about the IDCA and congratulations. I hear that you're newer to the organization, so congratulations on that. But what are some of the exciting things that you guys do and are working on? Sure, yeah, it's about week two for me. So I'm still trying to fully grasp all of our capabilities and our reach just internationally, which has been really impressive so far. I'd say right now our flagship product is our facility audits and certifications. They're really designed to identify weaknesses and the strengths of a facility as well, then recommend optimum revenues for the operations and the infrastructure. We do audits on design and build and operations. We do certifications for the entire data center facility itself. We do cloud certifications and we even do certifications on the IT and the application level. So pretty robust suite of services that we offer to the industry. And you've been having a lot of really great conversations lately. Before we sat down over here, you were letting me know you were just speaking with quite a few international embassies to talk about putting together some more of those solutions internationally. Yeah, in fact, just last week I was in DC where the IDCA's headquarters is just outside of DC in Rockville, Maryland. And on Thursday we're hosted by three different embassies, including Oman and Hong Kong and Malaysia. And the point of that was to open a dialogue and a discussion on how the IDCA can provide some strategic consulting to assist in digital transformation for some of the developing sectors of those countries, which we've done in the past as well. Definitely important conversations to be having right now as we're just diving further and further into this fourth industrial revolution. So we're just excited to see what you guys do and where everything is going. Any sneak peeks of things to come on the horizon that you can share with us right now? Yeah, absolutely. So I think it's exciting to announce it that we're finally gonna be doing in-person training again. I think we're pretty much out of the woods. I'd like to say. And so I've identified the markets that we're gonna be doing that in over the next 12 to 18 months. The schedule will be released shortly. The markets are San Jose and Phoenix, and here in Austin, we're also gonna be in Chicago, and Atlanta, New York, and Loudoun County, Virginia. The idea also is to ideally host these trainings at Colo facilities in these markets. And it really doesn't matter which ones. Ideally we wanna be able to have those in the facilities so we can provide hands-on training in the data center itself. So kind of a call to action for all the Colos in those locations. Feel free to reach out to me. But you can probably expect me to be calling you within the next few weeks to discuss that anyway. So we've been forewarned. Where can people just keep an eye out on the schedule for those trainings, or if they just wanna learn a little bit more about IDCA, where can we go? Yeah, we'll be announcing that on idc-a.org. Other announcements to come too will be, we're rolling out a membership platform over the coming weeks, and I've already started planning a mega conference that's gonna be within the next 18 months as well. So that's idc-a.org, or Curtis at idc-a.org. Well, Curtis, thank you so much for joining us here both at DataCloud USA, and then of course on JSA-TV Live. We appreciate you being here. So thank you, and thank you to our viewers for tuning in, and as always, happy networking. Hello, and welcome back to JSA-TV Live. We are the live streaming news platform for DataCloud USA, and we are back again, once again in sunny Austin, Texas, where we're having a beautiful day, and a wonderful DataCloud Live. Beautiful day, and a wonderful DataCloud USA experience. So far, I'm Keely Dorian, joining me right now on JSA-TV Live. We have Girat Naraj Shah, excuse me. Senior Vice President and Director of Sales and Business Development for IX Africa. Thank you so much for joining us today. Thanks, it's a pleasure to be here, so it's good. We hope you're having a wonderful conference so far, but let's just dive right in. Can you just talk to us a little bit about IX Africa's hyper cloud ready campus in East Africa? Sure, basically it's a hyper cloud campus, 22 and a half megawatts of IT power. It's the first in East Africa, and very credible to scale up in a big way. So it was a big project that we've done. We're just about ready for service that's going to be in January of 2023 with four and a half megawatts, and then we'll scale it up. So yeah, big project, fantastic land area, huge, huge, hyperscale opportunity. So definitely some exciting things to come. Absolutely, absolutely. The first in the country, the first in the region, first in East Africa, so yeah, we've got a lot of good things to look forward to, and the hypers are now looking at what's going on, so absolutely a market that's really emerging in a big way. Absolutely, so can you talk to us a little bit about how this new campus will just play into the overall advancement of network infrastructure in Africa? Basically, data centers are the hub and the core of the internet as it goes, so with internet coming closer, it brings the internet closer to the people. So content is now going to be available within East Africa, within Kenya, within Nairobi. So in that way, it's enhancing the network in such a big way, and so connectivity becomes easier, you have a lot more content on hand, there's a lot more availability of all sorts of cloud applications right there, so there is no latency. We're actually reducing that element of latency for connectivity. So why Kenya? I'm sure there is a strategic, very strategic method behind the madness there. Well, first thing, Kenya is just a beautiful country. It's great, yes, that's a plus on its own. It comes as a benefit, no doubt, but Kenya is very, very centrally located on the East African coast. There are quite a few subsea cables coming into Mombasa, and Africa is just undergoing a massive transformation digitally, right, so cloud applications are growing quite a bit, and Kenya is a technical hub, Nairobi is the hub itself, so Kenya is ideally situated, IX Africa is located in a very, very strategic position, so it can actually enhance this whole growth of digital technology. The other element is that Kenya is actually, Nairobi for that matter, is elevated at 6,500 feet, so it's actually very cool. It's the ideal climate for an efficient data center, so having looked at all these parameters, we realized that this is the ideal location to be in, so apart from Nairobi being the technological hub, we're also going to be building, or have built, a very, very efficient data center, so we look at a PUE of 1.25, that's something that pulls in the hypers, so it's something that we've looked at, and then again, it's situated very centrally, so to connect to different countries, it's quite close. So we have, from Kenya, a market of 400 million people. Now, when the hypers start looking at that, yep, that makes sense, so I think that's the reason it actually decided on Kenya. So that is an impressive PUE, and I want to dig into that for just a moment, so let's talk about sustainability and more efficiently run data centers overall. That's a big pillar for you as you are advancing and developing, can you share just a little bit about that? Yeah, sure, so PUE, 1.25 is fantastic, it's, I think the average in Europe right now is about 1.4, so 1.25 is something that we've strived to get, and that's because of the method, the design of the data center, the fact that we're using a very different cooling method, adiabatic, indirect adiabatic chilling, and as I mentioned, Nairobi is based at 6,000 feet, so between the months of May and September, we're dropped to 12 degrees centigrade, it's free cooling, so we can achieve that 1.25, and perhaps as we go along with more technology coming in, we'll try and reduce that to further, that's the ambition, but that's one of the reasons. From a sustainability point of view, Kenya's energy is green, predominantly geothermal, hydroelectric, and then a little bit of solar and a little bit of wind, so we're green as it is, and that's another plus point for the hypers to come in, or for any other enterprise that's willing to look at how they can reduce their impact on the climate. And then we have something called Keep It Africa. Keep It Africa is a mantra that we've got in place where we try to have a very sustainable supply chain, so we are reducing our carbon footprint by making sure we've got everything available within the country. If not the country, then the region, and then finally we can go out, but that idea is to grow and develop the entire economy as it is for us, or at least to boost it, and that's one of the key issues that we have. We have wastewater management, because we use a lot of water to cool, well, not a lot, but we'll recycle it. So we have in every aspect Keep It Africa sustainability in place, and then obviously we'll have our own solar to generate for our administrative costs and all that. We've involved our community around us, so we'll have a lot of planting of trees, a lot of recycling, all that's going to be available to the economy, to the community. Such an important thing, and we're so glad to hear that you're doing that. Last question before we let you go, and then we'll let you get back to your data cloud experience. But can you just talk in general about the leadership team at IAX Africa? You have a lot of really great experienced individuals who are coming up with some great solutions, as we have just talked about here. Yeah, I call it the dream team, to be honest. Guy Wildner is our chairman. He's had a lot of experience, very knowledgeable in the data center industry. He's been there since 1998. Andrew Hunter, our CFO has been, was co-founder and co-investor in Treptorico. So a lot of knowledge there again. There's Clemore Matinu, who's involved in the build of the entire data center. He's one of the guys who actually brought in one of the cables, line two, and he was involved in building that station, subsea station. And Naresh Mehta is ex-CEO of Schneider Kenya. So he's got a lot of knowledge and ability in power and electronics. And I do my leadership management and the commercial element, which works well. So I call it the dream team, it's an amazing team. And we work really well together. But certainly a lot of vision from Guy, and it's actually fun to work with IAX Africa. To work with IAX Africa. So it's the dream team. Well, if people want to learn more about the dream team where IAX Africa are all of the great things that you have going on, where should we send them? Nairobi, Kenya. And if they can't go there. The website, IAXAfrica.co.ke. You get all the information from there, it's all there. Or contact me, I'm available, Nerad Shah at IAXAfrica.co.ke. Thank you. Thank you so much for joining us here at Data Cloud and at JSA TV Live. And as always to our viewers, thank you for tuning in and happy networking. Welcome back to JSA TV Live, the streaming network for tech, telecom and data center professionals. I'm Buffy Harakitas, coming to you live from the Data Cloud USA floor. And joining me today is John Yembo, senior director of infrastructure for telegeography. John, welcome to JSA TV. Thanks so much, good to be here. Yeah, so so much going on here live at Data Cloud USA. And it seems to be that the message here is sustainability. And as you can see, we are bringing the greener data movement here to Data Cloud. Can you tell us a little bit about what you've been hearing? Yeah, there's been a lot of talk about the broader themes of sustainability. And we have a very complicated little period of time, I think to work through in the industry and really in the economy, the global economy at large. And so there's been a lot of good soul searching, I think, about the best way to move forward, both in the short term and in the long term. Yes, absolutely. And what are you observing as some of the biggest hurdles that data center operators are facing today when it comes to the critical topic of sustainability? The absolute biggest hurdle right now is energy availability, underlying generation of power especially in Europe. So with the continuing war in Ukraine, the availability of natural gas is the biggest issue and that's affecting the global wholesale energy markets significantly. And that passes on to the data center operators and then to end consumers as well. So while we're talking about the longer term efforts towards sustainability, which are also very critical, and in another sense very immediate because so many regulators are pushing some for the very first time on the level that they're doing right now to pursue better initiatives in the long term, the countervailing issue is that in the short term everyone just needs power. It's almost like we're in a power pandemic which was something that I discussed earlier here at Data Cloud, yes, on a very important critical panel. So give us a little bit of insight into what else you're hearing at the Data Cloud USA floor and some of the conference sessions. Some great conversations are happening. What are some other messages that you've been hearing today? Well, I think the broader conversations about sustainability have been really good, very substantive and we're talking about everything from what's going on within the data center, the types of servers being used to how power is stored, to how it's generated and to the kinds of cooperative arrangements could be made with other sectors in order to utilize energy and waste energy better. So those are the kinds of things that I'm hearing a lot of good positive ideas on. So when it comes to implementation, that's going to be the question, especially in the short term. And where can viewers go to learn more about telegeography? Well, you could go to our website, telegeography.com. We do extensive research on global capacity development and pricing trends in the market. We also have a couple of free resources that viewers might find interesting. We have the submarinecablemap.com where we track all of the major subsea cable projects globally and we run the website internetexchangemap.com as well. So encourage you all to look at that, help us get better data if you can and continue to give us good sourcing information so we can keep that as authoritative as possible. What's the latest on subsea? Well, the latest on subsea continues to be this long-term shift towards content developer, content networks, the hyperscalers themselves, driving network development. As recently as 2010, 80% of subsea development was driven by investment from carriers. Now that's almost completely flipped. Is there anything else you'd like to add today, John? Well, I guess on a separate note, it's been fascinating in the middle of all of this kind of turbulence in the short term to see the incredible opportunities that are being generated at the same time. And what we're seeing in the midst of all this is a greater distribution of network resources. And so some of the negative things have been a good impetus to develop elsewhere. And we're seeing that throughout Southeast Asia, the Middle East, Latin America, other parts of Europe and all over the planet. So there's a lot of opportunity in the midst of short-term uncertainty. So light at the end of the tunnel almost, like. Yeah, absolutely, no doubt. Well, thank you again, John, for joining us on JSA TV. And I'm Buffy Harakitas. Thanks for joining and stay tuned for another fabulous episode of JSA TV Live from Data Cloud USA. Happy networking. Welcome back to JSA TV Live, the live streaming channel for tech, telecom, and data center professionals. I'm Buffy Harakitas, coming to you live from Data Cloud USA in sunny Austin, Texas. And joining me today, we have Greg Roles and Luke Kipfer of Powerhouse Data Centers. Gentlemen, welcome to JSA TV. Thank you, thank you for having us. Yeah, glad to be here. So some exciting news coming out of Powerhouse Data Centers just this week, the announcement of the exciting launch. Can you tell us a little bit more about the launch and what makes Powerhouse Data Centers so unique? Certainly, so one of the more unique aspects of Powerhouse is our ability to excel at site acquisition. We have in-house expertise that has, that we've developed over the years and relationships that are deep-seated. We have an in-house acquisitions team and in-house development team that I lead. We work hand in hand to ensure that we deliver best in class, PowerChel, Build-A-Suit, and Build-A-Spec Data Centers. All right, well congratulations on that launch. We've been seeing it all over, LinkedIn, and everyone's talking about it here on the Data Cloud USA floor. So congratulations. And Luke, when it comes to the financial aspects and the joint venture that you have with ARAP and Harrison, can you tell us a little bit more about that? Absolutely, so we're in a $1 billion joint venture with Harrison Street. Harrison Street is primarily focused on alternative real estate assets. They have data center assets throughout the world. And one of the big advantages of is they're a very sophisticated partner when it comes to data center. So they understand the specific needs for hyperscalers and what we need to do to be able to deploy those assets quickly to the market. Well, congrats on that great joint venture that you have going there. And it seems that you're expanding pretty quickly with six data centers planned in the heart of Data Center Alley. Can you tell us a little bit more? Yeah, absolutely. So we have our PowerHouse Arcola site that's just south of the Peak Data Center Alley that's a two building campus, over 600,000 square feet. We're anywhere between 80 and 96 megawatts of critical power depending on the specific client's needs. We also have the old AOL main headquarters campus right in the heart of Data Center Alley, right off of Pacific Boulevard. That's gonna be a three building campus that we're deploying there. And then we have our ABX One site, which is off of Bowmead Circle, right in the heart of Data Center Alley that's under construction now to be delivered at the end of next year, 2013. All right, well, PowerHouse is surely on the move already and we talked a little bit about hyperscalers or rather you did. So tell us a little bit about how PowerHouse enables hyperscalers in these critical markets. So through our relationships that we have with both our vendor partners, as well as jurisdictions like Loudoun County and Prince William County, it's really all about speed to market. And through our real estate acquisition and our relationships through our vendors, municipal partners, we're able to deliver best in class at speed. Best in class at speed. That's what I'm sure all the hyperscalers out there would like to hear for sure. And I'm excited for this launch and to be here with you guys today. Is there anything else that you'd like to add? We're just super excited to be here at Data Cloud. It's been a tremendous event, a tremendous venue and we appreciate the partnership that we have with JSA. Yes, we appreciate it as well. So tell viewers where they can go to learn more about PowerHouse and all these exciting announcements and initiatives ahead. Absolutely. So the website for PowerHouse is PowerHouseData.com and you can also feel free to follow PowerHouseData on LinkedIn as well too. So definitely follow PowerHouseData on LinkedIn, Twitter as well. Twitter as well. Twitter as well. And gentlemen, thanks again so much for joining me today here live at Data Cloud in Austin, Texas. And thank you again for being one of JSA's top partners and clients. We appreciate it. And thank you viewers for tuning in to another live episode of JSA TV Live here at Data Cloud USA in Austin, Texas. Happy networking. Welcome back to JSA TV Live, the live streaming network for tech, telecom and data center professionals. Buffy Harakitas back to you live in Austin, Texas for Data Cloud USA. And joining me today is Spencer Nakini. Spencer, welcome to JSA TV. Hi Buffy, thanks for having me. Yeah, Spencer is the marketing campaign manager for Zadara. Can you tell us a little bit more about Zadara and what your company does? Yeah, absolutely Buffy. So Zadara is a cloud provider. Essentially we provide storage and compute at the edge. We can provide it within AWS or a large hyperscaler. We can even provide it on a customer's own data center or anywhere in between. We have 400 locations around the world, including 130 in the United States, which makes us really apt to deliver a fantastic platform for people that are operating over a wide variety of workloads. And I see some big names on your shirt today. Some racing names. We have some exciting clients. Why don't you tell us a little bit more about some of your clients and the industries that you serve? Yeah, absolutely Buffy. So actually the reason why we wear this shirt is because we are the official cloud provider for Alpha Romeo's F1 racing team. So we have a nice little logo right here on the sleeve. And it's an interesting use case. It kind of highlights the infinite deployability of our solution. Essentially what the people at Alpha Romeo are doing with this is they're taking a full stack from Zadara. So storage and compute. And they're deploying us track side at every single F1 race around the world. They're running all of their car analytics on it. And then they're doing simultaneous replication of that data back to their headquarters in Switzerland. Not Italy, Switzerland. And yeah, using that information to help them win races and continue growing as a team. So it's really cool to be able to support that. And also nice to have a really high visibility way to show just how well our solutions can not only handle demanding, performant workloads, but also be deployed pretty much anywhere regardless of geography. Wow, amazing that you're the official provider of Alpha Romero, yeah, wonderful. All right, so what other types of industries and challenges are you helping to solve? Yeah, so we work across a wide range of industries. I would say that there's two main challenges that we help people solve. First obviously is price. I mean, the dollar makes everything go round and whether you're operating on-prem or in the cloud, cost savings is always key. So for example, our main value add when we look at comparing us versus a hyperscaler like AWS or Azure is we usually come in about 40% cheaper for a lot of reasons, namely things like we don't charge egress as well as we have a simplified billing. And then we also are significantly cheaper as an on-prem option because we're offering our solution in an OPEX consumption-based pricing model as opposed to the CAPEX that people are normally used to. And ultimately what that means for our customers is freedom, the freedom to scale up, scale down, the freedom to do what they want with their data without being charged, nickel and dimed everywhere along the way. And it's something that really resonates with a lot of different industries. Be it's, you know, I think one of our bigger use cases is object storage for, say, police body cams. Yeah, there are a lot of people out there that will go and try to provision large environments that are going to hold all of their police body cams for the next five years, but ultimately they end up running out of space within a year and a half. And Zadar helps them save that headache by being able to rather than go back to their IT department or to their budgetary department and ask for another million dollars for a new box, you can just spin up more Zadar machines and we'll send them out to you really as needed. Some interesting use cases there, so thank you for sharing them with us. And if viewers would like to learn more, can you tell us where to go?  You can also find us on Twitter, LinkedIn, Facebook, all of the big socials. I would say LinkedIn's probably the best place to get good content from us. But yeah, we have a whole plethora of solutions briefs and lovely white papers on our website, so feel free to visit Zadara.com slash resources. Zadara.com and very active on LinkedIn, yeah? Absolutely, yeah. Well, Spencer, thank you so much for joining us here in Austin, Texas, live, DataCloud USA, and thank you viewers for tuning in to another JSA TV Live here at DataCloud USA. Stay tuned for some more great interviews and happy networking. Welcome back to JSA TV Live, the live streaming network for tech, telecom and data center professionals. Kathy Harakitas coming to you back live from Austin, Texas for DataCloud USA, and joining me today is Nicholas Fischio. Nicholas, welcome to JSA TV. Thank you, glad to be here. And Nicholas is with General Electric. Nicholas, can you tell us a little bit more about what you do for General Electric and why General Electric is here at DataCloud USA? Sure, so I'm the senior sales manager for GE Grid Solutions, data center in particular, and my mission in life is to help grow our business as it pertains to the electrical gear that we sell into the data center industry. So I'm here to network, meet people, and hopefully grow the business. So Nicholas caught my eye here today at DataCloud USA, and I have to say he's probably the most fashionable at DataCloud USA here in Austin, Texas. Do you want to give viewers a little view of what DataCloud fashion is like today? I was just talking with a gentleman at the bar. He said, I like your crocs. And I said, these aren't crocs, these are Prada. And as we continue to talk, I've decided that they're called Crocs. So I just came up with that on the fly. But yeah, they're comfortable. You could wear socks with them or not. And the sport coat, the pocket square, the shirt. This is my fashion. Very, very snazzy, Nicholas. And in case you didn't notice, JSA is here fashionably in green to support our greener data movement. What's General Electric doing as far as staying green and sustainability in today's market? Good question. So GE, it's always safety first. And then after safety, it's green, sustainability. So we do a lot within any of the three businesses. We have aviation, oil and gas, and renewables. So I'm in the renewables and each business has metrics and goals around sustainability. Sustainability is such a critical topic and a very front and foremost one here at DataCloud USA. What are some of the key messages that you've been hearing on the conference floor here live or some of the sessions? Well, some of the messages I've been hearing are that the growth potential, while it's not unlimited, it's vast. But in addition to just making money, it's also about doing it with a small footprint, right? Putting the heat that you generate back into the grid to be used to heat homes, for example, in Africa, developing nations. That's part of it, doing carbon offsets. So it's not just about the P&L, it's also about giving back in the sense of trying to become carbon neutral. The greater good. And especially at JSA, our greener data movement, and we had 24 authors join our book and our movement to put out our first ever greener data book. We'd love to give you a copy of it. So we truly believe in sustainability here at JSA and we're trying to empower other organizations to join our movement, greener data, and hashtag greener data in case you want to follow that. Gotta have the hashtag. Yes, gotta have the hashtag and gotta stay fashionable here at Data Cloud USA. So give us a little bit more about where viewers can learn about general lecture. Yeah, so there's obviously GE.com, but then our microsite is GE Grid Solutions. There's four pillars, so I'm in grid automation, but there's three other ones. It outlines the products and services that we offer to the industry. So that's the best place to learn about it, yep. Well, Nicholas, thank you so much for joining us here at Data Cloud USA, live for JSA TV, and thank you viewers for tuning in to another fabulous episode here in Austin, Texas at Data Cloud USA. Happy networking. Yes. So just like my outfit attracted you to me, it was your green outfits that I saw and I kept saying to myself, why are they wearing green? And then as I was walking back, I said, ah, greener data, light bulb moment, and that's why we're talking right now. Carpe Diem. Greener data, hashtag greener data, and thank you for tuning in to another fabulous episode of JSA TV Live. Happy networking. Welcome back to JSA TV Live, the live streaming channel for tech, telecom, and data center professionals. And we are wrapping up a fabulous day one here at Data Cloud USA, the inaugural launch of this fabulous event here in Austin, Texas. So Kili, I mean this has been an amazing day so far. We've done at least five, six live JSA TV interviews. Oh, seven. Thank you, Allison. Seven interviews. We're so busy here. And we got to enjoy some great sessions, some very meaningful, powerful sessions here at Data Cloud where we're hearing that the message is allyship when it comes to women in data centers and when it comes to power and space restraints. You know, we're hearing that co-op attrition is the key there. So Kili, what are your thoughts overall from the first day of Data Cloud? Well, first of all, it's been a really fabulous event just from the participants who are here and the organizers who have put it on and just the quality of the people who are here. It's just been a really wonderful experience. The venue is unbeatable. You can't beat this view.  But it's on a golf course. It's just a wonderful environment to be. And then as you were saying, also a lot of the topics have just been really wonderful. And shout out to you, by the way. You emceed another panel today. Two of them I might add. And then on top of that, doing a lot of the JSA TV interviews. So I'm going to kick it back to you. How did your panel go? What negative information did you pull out of that? Yeah, the panels were very meaningful to me personally, being a woman in the data center industry, representing some of the top tier data centers here at Data Cloud and globally. So to be on that panel and hosted and talk to some of the most powerful women in the industry where we chatted about the importance of encouraging the younger generation to be a part of data centers and how are we going to get there and what do we need to do to encourage more women. I actually was joined by one of our clients, Prime Data Centers, their VP of construction, Kristin Behanero, she joined me. So that was really great to see that we have a VP of construction on the panel and she gave some words of wisdom of how we can encourage universities and data center organizations to partner on curriculum to really encourage girls in the next generation to be a part of such a fabulous industry because it really is, it's just not as glamorous as some women would think, but it really is. And we talked about social media being a part of how we can encourage the next generation, specifically with channels like Instagram and TikTok. And today I got to join some of the key leaders of the industry, from quantum loophole to Element Critical, to MCFI and it was amazing how we got to chat about the limitations of space and power and Meta as well was on the panel and they talked about what they look for with third party data center organizations. So some great key takeaways there with some of the most powerful leaders in our space today. So I was honored to be asked by Data Cloud USA to host some of those panels. And Kili, let's give a shout out to some of the top clients of JSA that are here at Data Cloud, sponsoring, you know, attending this wonderful event. Well, you've already mentioned prime data centers. So we've talked about them. We have in Volta, we have T5, EdgeConnex, DartPoints. We also have 165 Halsey Street. We have AREP, Powerhouse Data Centers, Lincoln Rack House and Stream. And I hope I haven't forgotten anybody, but we're just so honored to be able to work with all of our wonderful clients, the ones who are here at Data Cloud and then all of our other wonderful clients who were not able to make it here today. So yeah, a really, really great lineup of clients, some of who we've talked to here on JSA TV as well. Anything that you're looking forward to as we close out day one, Buffy? Well, yes, of course, the parties tonight, right? So of course, JSA will be there attending the Cloud Culture and Cocktails event tonight. And it's at Sway from six to 7 p.m. and it's being sponsored in part by I-Masons and also the Women's Tech Forum. So we will be there tonight in our green jackets representing greener data. In case you don't know about greener data, Keely, why don't you give viewers at home, watching us live? A little bit more information about the greener data movement that JSA launched just recently on Earth Day. Why don't you give viewers a little bit more details there? Sure, real quickly, greener data is a multi-author book. We've got 20 plus authors who have all chaptered a book on essentially greening the plumbing of the internet, if you will. We have various authors from all walks of our all corners of the Earth from in the different parts of the infrastructure space. So data centers, of course, but then we have one, for example, they do generators that go in the data centers and then there are other cloud providers that are any way that you can touch a data center and make it more efficient and more perform better and just be a greener. That's why it's called greener data. That's in there. So you can check that out now. We do have copies. If anybody's here at Data Cloud, you can come by our booth and just pick up a copy. Or if you're at home watching this, you can just go to greenerdata.net and you can find all the details on how to pick up your copy. Yeah, so be sure to go to greenerdata.net, hashtag greenerdata to find out more about the greener data movement. And here at Data Cloud USA, we rolled out the green carpet and we're here talking about sustainability with a lot of the guests that you're seeing at home and learning about what the digital infrastructure community is doing to be more sustainable because it is such a critical, important topic in our industry and of the world today. So thank you viewers for following us live here at Data Cloud USA. And be sure to check back with us tomorrow. We'll be live again, right? That's right. And until then, happy networking. Happy networking.


What's good, Josh? You were Ross back again with another video. So I've been thinking about this pretty much all weekend. Cody needs to step it up in the promo department. He needs to step it up in the intensity. He needs to step it up just in general, when it's relating to the rock, Roman Reigns and the bloodline. Because right now, storyline wise, the guys getting cooked. Seth has been getting cooked. Cody's been getting cooked. And the rock is the one cooking them. It's not even Roman at this point. It's literally just one guy cooking up Seth and Cody. Simple as that. Now, some people can say, well, the rock has so much leeway to say what he want on social media. He also has a lot of leeway to say what he want on on WWE television. Where here's the thing, if the rock is giving that much leeway, I do think if I'm WWE and part of their creative team, Triple H, I will allow Cody and Seth to have a little bit more leeway in this particular feud. Not saying that you have to curse every five seconds to get your point across, but there needs to be some type of intensity, especially for Cody. If he's quote unquote trying to finish his story and he's fed up with the bloodline and the shenanigans, there needs to be a lot more intensity with him. If you guys remember a few weeks back on Monday Night Raw when Paul Heyman came up there with the J.A.G. police or whatever they were supposed to be off duty police or whatever and the intensity he had at the end of that show. And what he was telling Paul Heyman, if you get if anybody steps forward in this ring, I'm going to crack you with this chair. You know him saying I'm coming after the bloodline. I'm hunting them. What happened to that? We there has been no hunting. He has not went on a hunting trip for the bloodline. Nothing. Yes, he got his slap back. But that's it. Me personally, I feel like that was good. They were heading in the right track, but they didn't really expound on that. And I get it. Cody's trying to go this nonchalant. I'm not watching these 20 minutes. I'm not checking out these promos, whatever, whatever. But I think you can't go wrong with Cody having some type of social media presence and be like, you know what? I've had it. Tune in tonight on Monday Night Raw. I'm going to air out everything because the rock's not telling you the full story. I'm going to I'm going to let y'all know. I'm going to have my own concert tonight. We're going to have fun. Since he wants to mention my family, let's start talking about your family. Rock, something like that to get people all what Cody got to say now. Because that's been the thing. People have always mentioned Cody's family and all this other stuff. And it's like, he's so diplomatic, like, that's fine. I'm going to overcome the odds. Yada, yada, yada. It's like, bro, he's talking disrespectful to your moms. Like, what are we doing here? No more of the niceness. Like, that's that's the only thing I want to see different going forward. No more of that. That promo he had last week was very passionate. But once again, you're still getting cooked by a guy. That's basically trying to end your story and has said it. If you lose this time, I'm going to make sure you never have another opportunity to have the title again. He's trying to take everything away from you. You can be a baby face and still have feelings and emotions. You can get angry. Yeah, that's a human emotion. I can connect with someone more when they're upset and they're fed up and they finally fight back. They finally fight dirty. I can up. I can understand that. I can resonate with that more than someone just sitting up there where like, yeah, I heard what you said, but I'm not really worried about it. I'm focused, bro. Stop all that. Stop it. Stop it.  Stop the niceness. Get back to I need to take these guys out one by one. And what I was hoping they were going to expound upon. And I hope he does this tonight on Monday Night Raw. I hope Cody, instead, if he's not going to be super aggressive and talk his trash. Go the smart route. Start playing the field. Start trying to create dissension between the rock and Roman, because you know it's there. That's all you have to do. There are two massive egos. It's very simple to pit them against each other. That's what you have to do. Pit them against each other. It's easy to say that's crazy that Roman calls himself not Roman. The rock calls himself the final boss. I thought we were supposed to he was supposed to acknowledge the bloodline. Now he's just acknowledging himself. What's going on? Roman is the one with the championship. Romans, the one that's sitting at the head of the table. But these past few weeks, he said he's been sitting at the head of the table behind the owner. That's what he's been doing, something like that, to really spur it up to make Roman start to question things. Play on Roman's ego. Play on the fact that he has to have someone acknowledge him. I would easily pick that apart. Like we're talking about the rock here. The rock is acknowledging Roman because Roman's ego is fragile. Do you really think the rock is really acknowledging you? We all know here. We all know that the rock is only here to take to try to take away Roman's championship. But Roman doesn't even realize it. Roman doesn't even realize he's only here to ride the coattails of the wave of Roman. He doesn't even realize it. Roman doesn't even realize that he's not even the number one guy anymore. He had to have the rock to acknowledge him to feel that way. We know we know people are not here to see Roman no more. They're here to see the rock. That's what it is, something like that, just to play it up to get Roman pissed, to to to create that dissension. If you're not going to talk trash, you need to have a strategic idea to help yourself in these matches that you have in WrestleMania. Simple. That that could be his way of taking down the bloodline, planting seeds of doubt. He did it with Jay. He got Jay to pretty much leave. Plant seeds, use his talking ability to get someone to start question things. He could do the same thing with Solo. Solo's played Solo is a non factor anymore.  They don't care about you. And Paul, Paul's a leech. As soon as Roman loses when I beat him, guess what?  Like, this is what you need to do, plant all the doubt and uncertainty. Simple. That's it. Right. I don't. That's just how I would do it. You don't have to have the wrestlers. You don't have to have Cody Kersen a lot, but it would be cool if he got angry. He needs to be angry tonight because the Rock has mentioned his mother in a disrespectful way. He needs to be pissed. He needs to send shots at the Rock, letting him know why is not going to go down the way he think it is. And then when he has Cody has his interaction with with Roman Reigns on Friday night this week, he needs to play the field. He needs to sit up there and try his try to pit the Rock and Roman against each other because I don't think the Rock is going to be there. This is the perfect time to do it. I hope they do something of that nature. I hope they allow him to be a little bit more aggressive because right now. It's not looking too good for him. He's he's looking like a joke. He is.  That's how Cody looks. And I want him to complete a complete a story, but it's kind of hard to buy into someone when they're keep getting disrespected. Their family keeps getting disrespected. His dog has been disrespected. They're trying to disrespect your legacy and everything you've done. And then all of a sudden now you just want to be nice. When at the press conference, they talk.  And then you got disrespectful. You brought up his family. Simple. If they want to keep bringing up your family, you bring up the heirs. Simple. I hope they do that, man. Comment down below. Let me know what would you guys have Cody do in this situation going into Monday Night Raw in the weeks leading up to WrestleMania? How would you guys have Cody's character be? Because right now, in my opinion, what they have him doing is not it's not equaling out to how the rock has been cooking him. It's not. So y'all, let me know what y'all would have Cody do to kind of even the playing field a little bit. Do you guys like my ideas? If you have any better ones, let me know down below. Let's have this discussion and maybe just maybe they will allow Cody to be a little bit more edgier or at least use his brains more to try to destroy the blood line from within something. But y'all, let me know how y'all feel about this, man. Appreciate all the love support. Road to 150K. Now I'm saying this. Be the huge resident champion of the world. Appreciate y'all kicking in with me. See you on the next one. Peace.