Daniel Peter joins to talk about Dreamforce 2019 news for developers.
Daniel is 27 x certified, Salesforce MVP, Salesforce Developer Group Leader in the Bay Area, Salesforce Practice Lead at Robots and Pencils.
Main Points
- Daniel’s self-introduction
- The reason to have Daniel on the show to talk about Dreamforce developer-related announcements
- Lightning Base Components have been open-sourced
- The evergreen platform announcement
- WITH SECURITY_ENFORCED and Security.stripInaccessible
- Enterprise blockchain announcement
- Einstein AI announcement
Links
Video Teaser on Dreamforce 2019
Outro Music
Let the Battles Begin! – FINAL FANTASY VII Remake
Contact Me
If you enjoy this podcast, please reach me out to let me know your thoughts or simply say Hello. My (Xi’s) contact info:
Take care, until next time :)!
Transcript
AI-generated, unedited.
[00:14] Hello, everybody. This is Xiao. This is yet another episode of Salesforce Way podcast. Today, I'm sitting with a great guest. With me, his name is Daniel Peter. Hello, Daniel. Hi, Xi. How are you? And good, and good. How are you doing? I'm good. Very nice to be here. Thank you for having me. This community is is so great. I'm excited to see another podcast. So yeah, cool. Would you like to still introduce yourself? Sure, Daniel Peter. I'm a Salesforce MVP. My day job is I'm the Salesforce Practice Lead at Robots and Pencils. I also I run the Bay Area Salesforce Developer Group here. I live near San Francisco, and I've I got twenty seven cert Salesforce certifications. Yeah, usually I don't want any more comment about the number of certificates because a lot of my guests have like over twenty or something, but twenty seven—it's really a number. Yeah, hopefully thirty soon. Yeah, okay, and you know, one thing's really big in my mind is you are the developer group lead in Bay Area. That's ah the heart of the you know the the Salesforce headquarters. I don't know how many Salesforce developers are really part of that that group. Yeah, no, it's great. Actually, a little piece of trivia: this group used to be the only group,
[01:44] and in fact, we're coming up on a ten-year anniversary. I haven't been running the group for ten years, but ten years ago, there was one like Salesforce group. There wasn't even an admin group or different types of groups. There was just like. The Salesforce maybe they called it a user group and it was everything, and I think when it first started it was actually run by Salesforce, but then it ultimately kind of became a community-led. Thing and so forth. So we're the we have the title of the oldest group, and at one time we were the only group in the world. And I've been running it for over three years now, and we're so spoiled because all the product managers, architects, everybody that works at Salesforce is right there. So we we have no trouble getting guests. So yeah, pretty pretty spoiled, and I've met so many great people through this group. So it's been a great experience for me. Yeah, that's cool. So, so Daniel, today we have you on the podcast mainly to talk about Dreamforce '19, which has just happened, and you participated there and you attended a lot of sessions. And I think you are filling this seat better than many other guests. Is that? You really have pain points, and you really see those announced developer-related you know features that you see. Okay, how it really solves your pain point in your daily job, and that's really like a match here.
[03:15] And I don't only want people to say, okay, this is a feature A, that's a feature B, but why do we have it? What problems does it solve? I think that's more important. Yeah, yeah, it's great. You know, Salesforce is a is an awesome platform, but it's a mix of some good and some bad things. And you know, a lot of this pain the developers feel, maybe the end users don't. They say, "Oh, just make this thing work," but then developers have to do all this hard work of working around the different limitations of the platform. Yeah. See, I've been. Doing this for the past ten years, and you know, sometimes you could say the developers are the last one to get the love. Not always, but. So we're finally getting some love, and I think it's great. We have people like Chris Peterson and Andy Fossett at Salesforce now, who have been in that role. Now they're taking all their pain they've had over the years and fixing these things and giving it back to the community. Now that they're working at Salesforce, so I think we're seeing a lot of that, the outcomes of that. So it's a pretty exciting time to. To be a developer and to hear the announcements coming from Salesforce related to these things, yeah, that's cool. So how should we start? So I understand you bring multiple points to our table. Yeah, there's there was an overwhelming amount of announcements at Dreamforce, and there's no way I'm even going to cover a fraction of a of them. So I'm just highlighting a few things, maybe six
[04:45] or so things that I think are. The most interesting, from developer standpoint, somebody who's been in the ecosystem a long time, but realize that probably it would take weeks of full time study just to catch up on all the announcements from Dreamforce. Yeah, so many things announced there. Yeah. So, which one do you think we should start with? Yeah, I think Lightning base components being open sourced is a cool way to open it up. Okay. So, Lightning-based components are awesome. I mean, folks who have used them for Aura, for Lightning Web Components realize what an accelerator they are. It's kind of like. The almost like the clicks before code kind of approach, but for a developer, so they can mention one line of code, which will ultimately build out maybe hundreds of lines or thousands of lines of code for them. So it's it's huge, and I think if you think about that eighty twenty rule, maybe eighty percent of the time. These base components will solve your requirement, but that remaining twenty percent, maybe the customer needs this thing to work just a little bit differently. So previously, if they needed that, we would have to make this thing from scratch. You'd have to almost just throw away the base component, create something scratch. So the fact that these are open source now, so yeah, yeah, this is well actually, this is really good point. For example, a lot of my colleagues
[06:15] they're working on Lightning Table. And and whenever they need to do a bit more tailored customization, then the Lightning table doesn't fit. You really need to throw it away and start from scratch. Use some third-party table JavaScript to really build things up. This is really good point. Is it covering? Yeah. Is it only covering the Lightning Web Component or also the the Aura component as well? Yeah, this is the announcement was around Lightning Web Components. Oh, that's so cool! That's so cool. I didn't even know that. You know, I didn't attend the Dreamforce. Yeah, I think perhaps all along the Aura based base components were actually Lightning Web Components under the covers, but I think I heard. Yeah, I think I heard that. Okay. But it's it's exciting just to go to this GitHub repo and look at how Salesforce built these things. So if you had some questions, am I building light Lightning Web Components right or not? Well, now you can look at the you know flagship release. This is Salesforce's version of Lightning Web Components. So this should be like best practices and things like that. So you can actually use this as a very advanced example to learn from. That's cool. You know, yeah. How should how should I construct it? How should I format it? How should I name my variables? All these kinds
[07:45] of things. So it's great for that and. Yeah, I think we start to really embrace a lot, a lot more of open sourced repositories. We just had the Lightning Web Component open source, and then now we have Lightning Base components. There's a lot of good examples. We will put the the link down in our show notes just for our listener to check. Sure, and and I'll be excited to see not only people that have to grab these things and extend them, but also after they've extended them. How do they contribute them back? Yeah, exactly. Yeah, because and that's a kind of a spirit I don't see happening a lot in Salesforce ecosystem. It's a large scale. I know, like smart people like you and like many of other senior developers, you have the spirit. But a lot of people around me, like my level of experience. It's still a thing we're learning, right? Some of them are shy to to really share their crappy code. Some of them just don't think it's it's a good way to share. They don't think people will use it, you know. Yeah, there's there is a and a lot of the enterprise software you're building this stuff that's very cool for a customer client. Maybe you're not sure. Is there an intellectual property issue? Can I share it back out? That kind of stuff. Exactly. Yeah, yeah. And also, I see that to abstract or split away from
[09:15] your customer data, that's a really powerful skill. That's not all the developers can do. So that's something people can practice, right? And it takes extra time. You make a copy for the customer and another copy that's more generic and extensible for future projects. But I do see some people doing it. It's a very good way to build awareness of yourself or your company in a way where you're giving all this value back. Yeah. So there is a return on that investment. You do show yourself as a thought leader in the space by giving this out there. Maybe people get that particular component for free from you, but the next time they need something that they can't figure out, they'll say, "Well, they built this. Maybe we can hire them to build this other thing." You know, yeah, indeed, personal branding stuff. Yeah, yeah. And I understand this big announcement also from Andy Farset, and it was retweeted so many times that everybody in Salesforce ecosystem have seen that it's the Salesforce Evergreen platform. Yes. Could you brief us what what is that and what problems does it really solve for us? Yeah, this is this is a huge one. I mean, I think it's probably the biggest announcement that I've seen in the ten years I've been working on the platform. So essentially, you know, the elevator pitch you could say it's like AWS Lambda for Salesforce. You know, most people
[10:46] know what Lambda is or. At least they know serverless. You know different platforms. I think Lambda is the most popular one. Yeah. But you know Andy Fossett solved this at Financial Force, or I think him and some team members helped solve it. They created this open source platform called AuraZuru, which was based on Heroku, and it was a way to kind of connect. You know, do a lot of that tedious plumbing. Between Salesforce and Heroku, so you could do things kind of like serverless, but it's not the same thing. Okay, but it it it was similar. So I'm sure that informed the product direction for Evergreen, you know, because he built something like that. When I was working at Canandi, we had to build these things. Also, we used both Heroku and Lambda. Why do we need to build the off platform? I mean, what? Why is that? Yeah, I know. There's at least two big reasons. There's probably more smaller reasons. The two big reasons, one is just pure governor limits. You're very limited with the amount of resources you get for a transaction on Salesforce. You know, that's pretty much the bane of all developers' existences. Like. I could build this thing so easy, but it hits a CPU timeout. So now I have to tweak the batch job or do something. The other big one besides governor limits is the availability of libraries.
[12:16] So there's pretty much anything you can imagine you might want to build exists already. On npm, so some very fancy things like binary file manipulation, a lot of algorithms, you know, any type of text manipulation you want to do. A lot of developers have had to reimplement these things on Apex, and again. Number one, you're reinventing the wheel. This has already been done in an open source fashion on npm. It's very stable. You're porting it. You're probably maybe going to have some bugs. Who knows? But then also you'll probably hit those governor limits again. So, you know, if you're doing something complex, so those are the two main reasons. And if you can think about the architecture of Heroku, it's pretty complex because you have to end up building something like a queuing mechanism. You know, you kind of almost have to build your own multi-tenant infrastructure on top of Heroku. Depends if you're doing it for a single customer or if you're an ISV with a product with multiple customers all using your architecture. But it's not trivial at all. I mean. You know it's serious. You need to hire like multiple full time people to build and maintain this type of architecture usually. Yeah. And it's it's not just building it; it's maintaining it. You know you need to restart services if they go down and tune it and scale it and things like this. And that's where Lambda
[13:46] solved a lot of the problem because you didn't have to build all that infrastructure. You had like. Infinite scale and parallel. You know, you didn't have to build the queuing mechanisms. You didn't have to build the multi tenancy. So Lambda was a little bit, I would say, better model in that sense. But there was still a lot of plumbing to be done to get the data back and forth between Salesforce and Lambda. So this is extremely exciting and promising. But I would say.
[14:19] Way to get our hands on it to know the real story. Yeah, to to wait for it to get matured. Yeah, I think the biggest the biggest question in my mind is how is the pricing model going to work? I'm sure it's not just going to be some free thing you get as part of the platform. So we'll see how that okay how that shakes out.
[14:47] Hey! Thanks for listening to the show, SalesforceWay Podcast. It's all the time looking for both guests. And topics. If you have guest recommendation or any topics you like listen to, don't hesitate to let me know. My Twitter, LinkedIn, and email information is at the end of the show notes of each episode. You can also find it on the SalesforceWay.com website. I really, really, really need help from you on this matter because only you, my lovely listeners, know what yourself want. So please help me invite great guests to talk on great topics so that we spread great knowledge. Now let's get back to the show.
[15:42] Um, do we already know the high-level modeling how the Salesforce and the Evergreen platform communicate one with another? Is it by this event model, this subscriber with the publisher and subscriber model? Yeah. Yeah. So they they have announced some of the details of this. You know, I know Andy Fossett was a big proponent of unit of work, so that's a part of this. That enforces some best practices in terms of kind of getting your you know almost the bulkification thing, where you're doing fewer updates. You know, ideally one update at the end. But yeah, there's something. That they announced that I've been researching. I hadn't heard of it before, but I think it's called Web Events. Which is kind of a generic name, so it's a little bit hard to Google for. But you know, this is this is a way to have some metadata around an event and also some data. So, kind of a wrapper around, you know, the message you need to give to Evergreen to perform the action, along with the data needs to do its job. So, it'll be curious to learn more about that. Oh, yeah, actually, it's not called Web Event; it's called Cloud Event. Sorry. Okay. Okay. Cloud event, yeah. So I'm curious to learn more about that. But essentially, you know, it
[17:13] does Java and it and it does Node.js. I'm most excited about Node.js. I've been appreciating that method of programming more lately, mostly because of how easy you can do like the parallel processing. You know, the non-blocking I/O. I just love that. I feel like it's higher performance than Java. Maybe it's just my perception, but okay. Say from Node JS, you can run basically like a SOQL query and do the equivalent of like you know the same type of stuff you would do in Apex, the the queries and the DMLs from within JS, without you know you're not having to. Create a token and do an API call and parse a result and all that. It feels very native to JavaScript, so that's pretty exciting. That plumbing is all handled for you. That's cool. Yeah, let's wait for the Evergreen platform gets more information published. Then we we can study more. There is also another very interesting point announced is that now when we do the SOQL queries, we can do with this with security enforced. So, what what is that about? So. Yeah, I think a lot of customers maybe haven't had this pain, but ISVs definitely have. So this is probably another great contribution from like Chris Peterson and Andy Fossett because they had to build all this stuff. But essentially, the platform runs
[18:43] in system mode most of the time, you know, unless maybe you're using like a standard controller. A lot of people don't realize this, but you might have a very limited user, but when they run that Apex, it's actually got full access to the platform, and this is a good thing in many cases because you actually want them. To have that full access because it's under the control of your code, but if you're not careful, your code may expose that in a way you didn't intend and things like this. So, yeah, what to to get an app on the App Exchange, you actually had to be very explicit about how you're handling either scenario, whether you're limiting their System mode access or granting them full access, and if you are granting them full access, you had to do it in a way in which they couldn't use it any way they want. You know, it just does this one specific task. It doesn't let them. It doesn't open up the ability to query everything that they don't have access to. Okay. So essentially, you had to. Write custom code that would do things like object describes, field describes, and say, does this user have access to this object? Do they have read access? Do they have update access? You know, CRUD, CRUD level access. And then you would say, well, if they don't, what do I want to do? Do I want to throw an exception? Do I want to just drop that field out of the UI? There's a lot of custom programming, and so people would write frameworks
[20:14] where they would wrap their queries and their DMLs in this whole level of custom Apex that would check for the right level of access. So. This was a huge pain to develop, to maintain, to create a good user experience, to pass security review. Really seems like something that should have been part of the platform from day one, but it wasn't. The platform just was wide open. People had to implement their own way to handle that. So now there's kind of a quick and dirty way with your SOQL queries, just to basically say an extra clause like a WHERE clause or something. But you say like with security enforced, and this thing will throw an exception if you're querying fields you don't have access to, or an object. Okay. Sometimes it was sounds like a simple thing, but it was never there. It wasn't. It wasn't checking for that the user's access. So that's secure. But it's a bad user experience. I see. If you think about a standard page in Salesforce, if you don't have access to a field, the field's just going to gracefully degrade. You'll see a limited view. You it won't just throw an exception. So, they've also introduced that more more control over the experience, and this is this new security namespace security
[21:44] dot strip inaccessible, which allows you to have more control over how you handle that. So. You can run the query and you can get this S object decision back, and the S object S object access decision will let you see well what fields did we remove from that that you're not supposed to see, and what are the fields, what's the data that we actually get to see, and so then you can handle that however you want in very custom ways. So this is again maybe like that eighty twenty rule where the platform will at least handle all the access checks, but then you get to handle the user experience related to that. Ah, so you just talk about two things. One is this with security enforced, which is a keyword attached to the SOQL. And another one is when the SOQL returned that subject, there is a security dot script inaccessible. Another API or something in Apex that you can you can get the kind of metadata around that subject, right? Exactly. Yeah. Okay. Yeah. So. You know, it's not again. It's it's a spring twenty thing. So okay, we'll get our hands on it and play with it. It's been kind of in pilot and beta so far, but it'll be GA in spring. A lot of the stuff at Dreamforce is not GA yet, so it's interesting now that we're coming out of Dreamforce. We also
[23:15] have the Spring release notes. We can connect the dots and see. Okay, when do I get this stuff for real? Okay, go go. Yeah, you know, recently I just heard the new thing called Lightning Out. And my one of my colleagues told me it was in beta for couple of years, and it was never in GA. And then I realized, okay, there were these kind of features that have been beta for many years, and people are testing, and it never went to GA. I don't know if it will ever go to GA. But yeah, I didn't even realize it was in GA. Yeah, I've been using it on and off for years. Also, okay, okay, yeah, good to always check exactly like all the Dreamforce presentations. This looking forward statement, right? Yeah, yeah. So, I heard there's another thing, but has been talked a lot in the past. This was the Salesforce blockchain, right? Yeah. So, what things you have learned about Salesforce blockchain? Sure. Well, you know, blockchain is a one of those buzzword topics, of course, and you know, it comes down to is there any value in this besides Bitcoin, and what can I do with this thing? And I don't want to just say the word blockchain to like think customers think I am a great partner to go with because I use the word blockchain. So you know it's this this always comes down to getting at the meat of the business value
[24:45] and understanding how Salesforce has provided this. So that was one of my goals for Dreamforce was to really try to. Figure that out, and I I feel pretty good about it. I had some some great demos and kind of connected the dots with research that I had done prior, and it's looking pretty good. I would say. It's very different than, you know, the blockchain that Bitcoin runs on. This is like an enterprise private blockchain. Okay, and and and I think that one of the key takeaways for me is that the relationships between the people are one of the most important pieces of this, and so. To some extent, it's not a technology thing. It's a it's a people thing, and I think you know. Let's say you're part of a of an ecosystem of you know your business with some vendors. You kind of have to build a consortium there and talk to your vendors and get agreement on how you're going to build this thing. So you almost have to have like this. You know they actually call. There's different partners, and there's like some of the partners are called founders, and some are just partners that you transact with. So really, you want to get that core group of founders for a couple reasons. I mean, one is if you think about a data model, like you have to get these people to agree on what fields are going to be in that shared database. Another reason is, you know, the the nodes are sort
[26:15] of there's like a number of nodes that you'll spin up for like each partner. And ideally, the more nodes, the better, right? That's like how you get sort of a more robust system. So, is it really a blockchain if it's only one node? It's just more like a some kind of an immutable ledger at that point. Yeah, you you you want to have more of those nodes. So, it's never going to be, or at least this the way it's incarnated right now. It's never going to be this. You know, crazy distributed thing where you have like all these people running nodes on different hardware, even with different software, where it's totally resilient. Impossible to have a fifty-one percent attack, and it's not that kind of a thing. What it is is, it's more of a way of agreeing on a collaborate in a way where. Everybody's kept honest by you know you don't trust anybody going into it and you all agree you don't trust each other and that's okay you don't want to say like we trust this one person to run our centralized database that's just not the right way to do business because they anybody could change those values and you would never know so you build that it's almost like an agreement not to trust each other and to all have this. You know this the system in place that's going to keep everybody honest. So I think that's the most important piece is to come into it looking at it like that. Okay. For this particular,
[27:46] you know, for the the Salesforce blockchain offering. I see. But but then I think the next piece of the the business value. So sure, it's like it's got its full APIs. You don't even need to use Salesforce to leverage this, which is great. But let's say you want to use Salesforce. It's actually fully integrated with the platform, and it works pretty much just like a custom object in Salesforce. So you can, you know, you can relate this thing to the opportunity, and you can say, you know, when your partner delivers the material, the opportunity closes, or you can build all that workflow around it. So, okay, it's definitely. Blockchain for CRM in that sense, yeah, which is pretty cool, and it's it it has enough geek cred under the hood. It has you can actually do like the block explorer, you know, you can see all the hashes, all the timestamps, everything like that. So, I think it's pretty cool. I you know but just the word blockchain might be a little bit misleading. It's not the same as a public. Yeah. It's it's this enterprise blockchain private. Build your consortium of your you know your vendors, your partners, and go into it with the right people and the right discussion, and then I think it can really have the value there. Yeah, to me, what you just mentioned is that it kind of grabbed some features
[29:16] from the public open blockchains, like certain features. And because it's enterprise, still, it's kind of private, so it doesn't really have the the wonderful feature like a borderless or censorship resistant or like a neutral. Those things that does not really exist here. So this is more like a tool, right, for us to. You know, just get the work done, and then write down the the things into the the stone.
[29:44] Yeah, exactly. Okay, and the one last thing I still want you to bring me the news is about the instant AI. I heard there is also some announcement around that topic. There, there is, but I think the general theme for Einstein AI is it's just continually marching down the path of getting all these features into GA. Okay. So I wouldn't say there's like any one announcement that's huge. I mean we've sort of heard a lot of these things for many years. You know we've had the unstructured data. We've had a lot of good features with images. Now it's moving more into voice. The voice stuff is getting better. So I think probably the next step might be video. You know, if you've got, if you've got the the photo and you've got the audio, well, a video is just putting the two together, kind of. So I think they're just getting into more more of those types of media. Use cases rounding out the offering, but you know all this stuff, prediction builder, and all these things, are just becoming more generally generally available and more for you know more embedded all within the platform. Okay. So I think the main the main theme there is not any one product. It's just more of the same products becoming more generally available, like showing the progress they have done in the past years. Yeah. Yeah, and that's great. Do you know in the U.S. are there a lot of customers really eagerly looking
[31:14] forward to the Einstein AI? I don't run into them a lot, and maybe that's part of the problem. Is you know the general general availability, and also to some extent the pricing and. Okay. You know they're kind of related because it's generally what we see is when things go GA, then over time the price also goes down. So I think it's been more of the early adopters using this stuff. Okay. And so the the the cool thing is when Salesforce builds this AI.
[31:47] And and it is generally available. It pretty quickly moves from the early adopters into the majority because Salesforce is so easy to use. They've got this huge customer base. When they turn something on and they make it easy and the price is okay, everybody's going to start using it. So I think you'll see the delayed and large adoption on this one. That's cool. Thanks a lot, Daniel. It was really great talking to you. So you shared a lot of great news from the Dreamforce and bringing it to our podcast. It was really great chatting with you. Oh, thank you, Xi. It's been a pleasure. So see you next time, Daniel. Okay, bye.
