SERGIO GUADANCHESEA Hey, thanks, Ryan. This is Sergio. I wanted to ask you one of the sometimes challenging tasks was to do infinite row rendering, you know? Yeah. We had to, I think we had to do some special things to do that. Is there any change from version 26? I haven't checked the latest versions, but any easiest way to implement the row model?
What was the question again? So around the infinite row model? I mean, you know, try to implement one is the kind of like the limited row pooling, and the other one is the infinite row model that you're showing here? And is there any improvement on that? On the infinite row? I don't know that there's been any improvement in the last major on this. The nice thing is infinite row is in the community edition. So MIT license. You can use it. You know, it's basically all it is, you know, it's the client side row model, just with chunking is what I would call it, or blocking, right? Where you're blocking in the data. Keep in mind that ag grid already virtualizes columns and rows. So even if you have like 10,000 rows, it doesn't display 10,000 rows in the DOM. Like it's still like they call it virtualization. I think it's a fairly good word for it. But they'll only, they'll add and remove elements as the user is scrolling down through the grid and just kind of based on the viewport and all of that of the grid. But I'm not aware of, I think the answer to your question specifically, I'm not aware of any big changes to the infinite row model in the last version. Okay. Yeah, it's infinite row is kind of like a mute. It's like half client side row model, half server side row model, and then you have to set up this data source. And then the data source is a class or an object that gets, it kind of has these callback functions that get called on this interface. Compromise of making API calls to the backend and the backend can resolve the returning certain amount of rows from the database and all the, sorry, all the logging and stuff. You know, it's kind of like a compromise on that. Yeah. Yeah, it is. And, you know, as I'm scrolling down through it, you can see some blank rows as I'm like just really scrolling fast. I don't know if it shows up on zoom. But yeah, the nice thing about this is you can still fetch stuff from the backend, I think because you still get the ability to get things by block. But I'm trying to remember, I've used the infinite row model in the past. Yeah. And I think it's still, like it's asynchronous in that you have this like success callback or fail callback. If I were to be critical of the API, like I'd rather I just be like truly like a promise based and truly async. But you do have the ability to use the infinite row model to like asynchronously fetch data for a given block or chunk and then call this callback like when it's successful. Yeah, always with the goal of the performance, you know, because in when you have so many, I mean, the traffic is high and the user expects, you know, things to be rendered in less than a minute, sometimes. Yeah. And it's, yeah, I'm just checking if there's any, but it's, you know, it's a lot of things doing custom things but developing and, you know, with the community version, I don't know if the premium or the enterprise version has any improvements on that, maybe. The server side row model is kind of a whole different beast. It's similar to infinite row model, but much different. But you still are, like, you still have kind of whatever the, you know, you're still doing a lot of asynchronous data fetching. And you, there's lots of strategies, you can like start pre-fetching data, all kinds of things to try to like make it more performant. But you're still doing a lot of back-end front-end, like you're going back and getting data. You know, and you can control the block size, you know, so you can set the block size. Yeah, exactly. Yeah, exactly. There's a, yeah, there's some properties that you can set, like, for example, exactly, there's a hundred rows or 150 rows per chunks or something like that, and it depends on your user requirements. Yeah. Totally, yeah, agreed. Yep. Thanks so much, Bryan. And it's been great to refresh, get a refresh. Yeah. Cool, man, great to connect with you. Thanks. Yeah. We got another question here from Christopher, as a Google Dev Expert, have you used AG group with Firebase data sources? Yep, you betcha. I've done, there's a company out there called SaberSim, they do, it's kind of a US thing. I'm not sure where you're located, Christopher, but they do, they do, it's a, like a sports betting optimizer. Optimizer, and they heavily use AG grid and they use Firebase data sources for sure. And so I don't think I'm leaking anything sensitive. I have used, so we've used, used it with both the real time database as well as the, just Firestore. Yeah, and so yeah, you can definitely, in this instance, that's an Angular project. So they're using Firebase with Angular. So they're using a lot of RxJS for like binding of data and stuff like that. And so you're getting that data from Firebase kind of streaming in asynchronously through a web socket that comes in. Do they, I don't know if Firestore actually uses a web socket or more polling, but anyways, it doesn't matter. There's a project called AngularFire, which I haven't used in a bit, but provides like an RxJS compatibility layer around the Firebase JavaScript SDK that allows you to like more easily use RxJS for streaming data asynchronously into into your application. And all of that to say you can definitely stream data into AG grid from Firebase, whether you're just using vanilla JavaScript in the Firebase JavaScript SDK, or if you're using something more fancier like RxJS. Of course, there's other libraries you don't have to use RxJS, but Angular kind of RxJS is close, kind of close to the metal with Angular. And so you can it just kind of works well together, Firebase. Firebase AngularFire, which again is just like an RxJS wrapper, so to speak, around or provides some RxJS functionality around the JavaScript APIs for Firebase that allows you to stream data into AG grid. So, yeah, definitely. And if you're running into problems on that, Christopher, I'm not trying to sell anything here. But if you do want some help, man, reach out to me. I'm happy to help you out with that or something like that. So I've definitely used that with a Firebase data sources. So it works pretty well, which is nice. Works really well. And like I said, there's I'm not plugging them at all, but there's a company I've worked with them in years past called Saber Sam. And they do it's a optimizer for like daily sports fantasy leagues and stuff like that for sports betting. And so they have built a tool and you can actually see it right here. This is AG grid right here in this in this picture here. Doesn't quite look it. But this is a grid that they built out and does a lot of gives you a lot of functionality because you're dealing with tons of data if you're into sports and all of this stuff with projections and all kinds of stuff, ownerships and all that. And yeah, you can kind of optimize some of your things around that. And so, yeah, a lot of this data comes from a back end, certainly like a more persistent back end, more scalable infrastructure for some of that. But then a lot of the users, you're using the application and changing and overriding data. They use Firebase for all of that, and it works really fast and really well. You can stream in data, which is pretty cool. Pleasure to meet everybody. Thanks for attending. And yeah, check out you can follow me on Twitter if you want or check out the website. And yeah, good luck with AG grid and hope everything goes well. Thanks, everybody.
Comments