 Hi, I came all the way from Africa to be here Don't don't applaud they literally pay me to do that so it's it's okay No, I even got even got in a few hours from my wife at home in the States. So Right so it's 2017 just in case you hadn't gotten the memo yet and we're coming off of Our big conference that we have every year So that's one of the really we announced a lot of things and it's some of the stuff was even a surprise to me So figure come out and talk about it So my name is Ben Marks. I'm I serve as Magento's evangelist I've had this role officially for three years and unofficially probably for like eight all together I Work on our strategy and growth team actually a few of my colleagues are here in town for seamless E-commerce conference, which I'm pretty we're we're pretty excited about I like that We're getting doing a little bit more in Asia these days It's my contact information Twitter and my email if just a little bit of my credentials I Been developing with Magento since 2008 Joined Magento you as an instructor 2011 been with Magento since 2014. So I just actually coming up on my third anniversary in a few days and I fly a lot Just because our and so I just crossed a million miles with Delta And it's not really me bragging because I would never recommend this for anyone It's that you should always pity people who have to fly that much But it's just a demonstration of how Absolutely big our community is so I can go pretty much anywhere in the world and Say hey, I'm here and someone will come and they'll talk Magento with me Which is really cool, and I do fly enough now that they started letting me serve snacks on the plane. That's me there So the the thing for me You know Magento Magento has been around Magento has helped has helped shape The commerce landscape for sure came out in 2000 and Beta dropped in 2007 We have we have been responsible for I Don't know a shift. I think not just in in empowering empowering Merchants and the developers that work for them And kind of adapt our software to their needs But we've we've we've helped you know through through all of this. We've helped shape markets around the world So the markets that we're talking about now like just in the u.s A pretty astounding figure jumped out for March Sales growth outside of traditional retail is three times what it was for retail So what we're seeing is basically just things shifting shifting from you know Being present in the store to all of the different channels where people are buying things and that it makes it really challenging If you're trying to manage this in one place So our piece of this worldwide last year For the sort of the commercial volume basically the Sales that we enabled the went through magento code 101 billion u.s. Dollars That's not our figure that someone else's figure. We wish we had insight That's that's what stinks about open source people use our stuff and we have no idea who they are or You know or you know how well or not they're doing Another stat for me that the jumps out is our revenue and this doesn't include like developer salaries But just the revenue for people involved somehow engaged in the business of magento 4.2 billion It's a lot right and and for me it's not Again, this isn't this isn't like a this is not a bragging statistic It actually is a pretty humbling statistic for us because we have to do Basically if we screw up we're screwing up for a lot of people. We're messing with people's ability to you know save for their kids college to Go and take vacations to have a good life I've watched several of my several of my friends who I met on IRC, you know in the magento chat room in 2007 these people now have you know companies of their own, you know with millions in turnover And that's just really that that to me is it's always what keeps me going Our ecosystem and I would say if you're here you're part of that ecosystem Got a lot of our official solution partners a lot more Unofficial partners people small agencies independent developers doing this work a lot of certified developers That's for magento one right now. We're just getting ready to start up with magento two certification a Lot of engagement around the world and as I said 4.2 billion in ecosystem revenue So imagine Anyway, that's the background for those of you who aren't familiar with sort of like the size and scope And that's about as sales-pitchy as I get about us We just had our big conference we we have it in Vegas every year except for the very first year It's grown every year this year. It was 3,000 people from 50 countries. There would have been more but People are less inclined to travel to the United States these days And I'll leave it there So imagine of course, it's our big it's our big show it's at the win which is one of the top And perhaps the top casino Venue in Vegas Mr. Winne actually when we came when we finally got to the win a couple years ago Mr. Winne actually gave our keynote Gave the keynote at the conference and you know found out like he built all of modern Las Vegas like that was literally all of him So it's a really cool place to be it's a great place. It's a great backdrop for announcements So we have as Part of our announcements We've been talking about B2B For a little while now and and one of the interesting things as a developer So if you're working in the commerce space, right the thing is commerce is always always custom like You can you can use a SaaS solution for yourself for your for your commerce needs and and if it's if it's flexible enough And it matches what you need but at some point Usually you're getting up against a wall with what that vendor whoever makes that software how they think commerce works And and there's nothing wrong with with vendors doing that because at some point you have to make a decision and say okay I think this is how taxation works. This is how Promotions should work the the difference between a SaaS solution and and like an on-premise solution is that with an on-premise solution you can take You can get around our idea. You can do all sorts of good things and even some bad things if you want So that for me is a backdrop To talk about B2B which is which is growing I think more rapidly than B2C And B2B is an interesting challenge because we so so one of the things that that came out recently was we found out that We're the number one provider for People were the number one software in the B2B space and we don't make a B2B version like it's it's literally it's B2C So we're we're we're designed for business to consumer yet people are taking our platform and adapting it as a developer super challenging because There are there's a lot of logic that goes into things like price calculation Especially because we have multiple scopes like so you can take one Magento instance and host for 20 different regions with different currencies and different languages And if you start to think about that if your developer mind starts crunching that okay Like I've got a hundred thousand skews and they all have prices now I need to convert these for currencies and maybe I have different prices and different currencies and you can start to imagine the indexation Challenge that's involved like this is one of the sticking points for Magento and adapting to B2B because What there there are lots of common requirements across B2B projects, but one of them is one of them is actually Individual price lists so take that hundred thousand skews Now multiply it by however many customers and you really start to see that the challenge So that is just one example of things that we have to solve also for B2C For B2C you just have like hey, I'm the merchant. You're the customer. That's it. There's no hierarchy there besides that relationship So for us we model we model That well in our core product But businesses usually have some kind of hierarchy like this person belongs to an organization and these people are Approvers for these people so people have been building this stuff in the Magento for a really long time so one of the Things that we've managed to do in the last year is actually roll out and an alpha Bolt-on B2B product That will come out later this year like in in general release So that's that's sort of that top line We are as a business Looking heavily at age Pacific region, especially in Southeast Asia We did a little tour last year and we found out We found out the extent to which Magento has to be adapted to work for customers in consumers in various countries throughout throughout Asia So that became part of our part of our focus and part of our strategy and then we ended up Once we were spun out of eBay. We were bought by a company named Primera private equity company and now We have had an additional investment from Hill House capital and they're they're based I believe in Hong Kong So they're actually going to help us Really expand into Asia Pacific And basically just means that we have you know, we'll have some more connections. We'll be able to We'll be able to move a little bit more strategically. We actually just opened up an office in Singapore So we we actually do have presence in the region now No, like before back in the day every like Asia Pacific was handled by the closest person possible and that closest person was in California You know, it's just just right across the ocean We have we released in the last year a a platform PA PA AS platform as a service So this is different from a SAS because you still have full control of your source code But we have guide rails basically we have containers built in and we're using really a pretty strong partner platform.sh So that helps with deployment. It's it's it's really neat. I don't I don't have a demo here But if you're interested I can get you a demo. It's just it's a quick If you need a new if you need a new instance to play around with or blow up just create just just take a mega branch and Deploy it and it's and it's live and it's got built in CDN and Built in yeah built in CDN built in New Relic built in black fire And a couple of the things We have a marketplace which is good for us because it's it's a developer It's basically a way to leverage other developers work Right, so you've got you've got extensions that Ex the provide additional functionality You don't have to build this stuff yourself We finally we released a new marketplace for Magento 2 for those extensions and we just broke a thousand of those and Then we we acquired a whole bunch of stuff I forgot we didn't check the audio. We'll see if the audio works. Does that should the audio work do you think? Okay I took it's okay. No, they're just it's just product demos anyone interested in product demos Come find me after and I'll I'll be able to show them to you. So we're on an R&D tear So we have an analytics platform that we just bought because that just made a lot of sense rather than build it ourselves And we brought the whole company in-house That's used to be called RJ metrics now. It's business intelligence Right it actually helps build out a lot of our reporting Functionality it also is going to give us a lot of insight across All the merchants that are using it. We have an order management project Which we absolutely which we've been building out with a team in Barcelona for a while So this is this is if you you know if you're thinking omni-channel That's the solution I mentioned our B2B Those of you who have used Magento probably are aware that CMS is a bit anemic in the core product So we we found a really we found a couple of products to put together a page building product with drag-and-drop functionality and the ability to create New content types that video actually if you're interested that demo is is it's pretty cool to look at We also announced Magento social So just a connector that allows you to just with the push of a button for a very very low monthly rate Get take your products and Slurp them right into a Facebook store and build campaigns pretty easily off of that And then we also we partnered with Tommando for Magento shipping. Okay. I'm going to skip product videos That's what happens when your cab is late. All right So down to the down to the developer stuff Magento one end of life. We no longer support it after November of next year I Stress that because people keep asking me But it is the fact that we're we're doing an end of life there There's a lot of reasons to end it at that time. It's it will be three years to the date From when we released Magento 2 wouldn't and we said we would end support three years later It is also our it's also the case that PHP 5 is dead January 1st of 2019 So we don't want to have to it's actually not that difficult I think it's about four actual four line for four changes to make Magento one work on PHP 7 But as far as us officially supporting it, we just don't we we're not going to continue to make the investment there Magento 2 is Getting the traction that we've been looking for now. We're we're close to 10,000 live stores We just had our 2.1.6 release 2.2 release candidate. We'll be coming up here in the next couple of months One of the things that we're working on so one of the one of the one of the challenges that we had to face Going from a gentle one to magenta 2 was building test coverage. So Magento 1 was a is this, you know, this monolith doesn't use composer uses uses God object Does a lot of things that make it tough to test and the reason for that was because it came out in 2007 and Not a lot of people were testing their PHP apps in 2007 so one of our one of our real Challenges was to build this thing build Magento 2 with testing in mind and with with test coverage in the core We are actually Retooling that further because what we want to do is we want to hit this right here and That is have more frequent but smaller releases Right now we have these these kind of monolithic releases where we try and pack in a whole bunch of change that And that the reason for that is because it's actually really it's a lot of effort for us to pack up a release There's a lot of manual QA a lot of manual regression testing and so forth So we're making a whole bunch of investment In that testing framework and that sets up a lot of the other things that we're going to be doing So on the one hand yes more frequently releases But the idea is that it'll be much easier much more smooth to upgrade From one release to the next because you'll know the Delta there our And by the way actually if you don't know Magento when we start talking about numbers release versions We have this thing called a marketing version. That's the that's the two dot whatever That's where we talk about specific features or you know, maybe specific fixes going in But then underneath we have a platform So if you aren't familiar actually I'm going to go off script here. I'm just kidding. There's no script If you're not familiar with it, we have Hopefully familiar with PHP storm It's literally if you're if you're doing if you're if you're doing magenta development. It's Highly recommended to use this Right so these are these are some new features that you'll see I see new these are new from new to magento this whole Composer thing right everyone here using composer. I assume if not, it's okay But if you're not it really it's it's it's the package manager that we should have always had Yep, there we go right so We We use a lot of we use a lot of other people's work and that's part of the whole benefit of using composer It's like if we need if we need to build o-off Into magenta to just use someone else's o-off package. That stuff is voodoo anyway We don't want to have to get in there and figure it out. We don't want to have to maintain it if someone else is doing it now that is Possible only because we made the decision for magenta to to Implement PSRs right so we've implemented PSRs well technically zero through four But then we also joined the PHP fig which is the the group that actually makes those standard recommendations And so I'm our representative on the fig But this has been this has been This has actually made more inroads. I think for us Connecting with PHP developers in general because the problem that we have sorry. I was trying to stay still One of the one of the challenges that people had as they start as magento gained popularity was modern PHP developers were coming over They you know they were they were like okay Someone tells me I have to work on this magento project and they look at it and it doesn't look anything like Like the kind of PHP modern PHP development that they're doing So for us it was important for us to be able to use other people's work. It was also important to To have a project structure that makes sense to modern professional PHP developers Let's see what else we talk about We have a we have a pretty neat system for For customization right so if you're not is anyone actually working with magenta to already there's pretty much this magenta one A little bit okay cool, so It's actually you know so you know an extension like if you need to change if you need to change core code if you need to Add to it if you need to modify behavior, whatever it is You're making an extension in magenta and the reason you make that an extension is just like plug-ins and other systems You want to build your change in a way that's upgrade safe, right? You don't want to actually go in and change the core code So we give you a few ways to customize And that's true for magenta one and two in magenta two we went We went really deep So we still have our event observer So I can in in my in my module and creating a module in magenta two is super easy right because it's just it's a registration file And this actually ends up hooking up with the PSR for auto loader And then See there is a module configuration where you just tell the system like hey Here's my here's my namespace and module name and here's the the version number so you can check for migration Right basically see if we need to update data or schema and then and actually those those two files are that's it Like that that actually creates an extension Then you have to use a console command And I wonder if I actually have Okay, yeah dockers down Basically, we have a command line tool that helps helps do a lot of developer stuff and it's extensible it uses symphony components We actually use Zen framework one Zen framework to and symphony to Just you know just pieces of just pieces of each But for customization we actually have Dependency injection this was probably the biggest architectural shift that we made for For M2 and what this does is this actually allows us as long as you're using well preferably using interfaces for everything Like we do in most places in the core code You can swap out implementations if you need to and for those of you who know magenta one That's that's basically the same thing as a rewrite class rewrite It's not actually the way that we want you to customize things what we want you to do is We want you to Target specific classes and change only the public methods That you need to so what we did with M2 with our dependency injection system was we actually made in addition Sorry in addition to our event observers So if you're familiar with events in whatever framework or environment, you're you're used to dealing We have So we have just a very simple event dispatching mechanism. It is just it is literally a a string that is broadcast basically to the top of the stack and Then relevant items are passed in so for example When you add a product to the cart a lot of times you need to hook in custom functionality there So we just have Essentially right with the controller the controller and then the model that receive that the process that request Just dispatch and say hey the product was just it was just added to the cart. Here's the product You know and and and you know do your thing That is the most useful way for customization in magenta one in magenta two We we just went crazy and we said let's turn every single public method in the system into an event It's really awesome. It's really powerful. It can be used for Extreme good. It can also be used for extreme evil And and and there will be I'm sure as time goes on. We'll find some light I can't wait to collect some really bad examples of how this works, but Essentially what you do is you declare a plugin you say hey for this this block here Which is just the the block that renders the the header area, you know what I want You know instantiate this class here Right so instantiate this class. Let's take a look at this class definition and in here There is this public function after get welcome and the way this works is if There happens to be a public get welcome method in the the class which I've targeted This bit of code will actually execute after that method and We have plug-in architecture that does before after and around and and that Some of the magic there is just using a closure But this like I said this this essentially turns every public method into a Consumable event and you can stack You know you can you can do it just because just because I have a module that's looking at this That's doing something with get welcome. I there could be other modules that do it as well I mean as a developer you have to evaluate what's happening and You always have to pay attention if there are two two different modules Working with you know one method you may need to go in and figure out The logic you may still have a conflict there, but but but this gives you a much smaller surface area For gives you a much smaller surface area for For your for your plugins basically it means that if I need to change core behavior in Magento one I would actually have to you know sort of take ownership of this class definition Possibly now multiple Multiple Multiple modules can work with the same class without stepping on each other's toes So that is our dependency injection system. It's not without it's not without its Complexity because when we when we converted Magento one code to sales Order when we converted our code to This dependency injection idiom when we use constructor based injection Some smells popped out for example. Here's the constructor for the sales object. Those are all the dependencies So we have our own custom dependency injection handler Basically an object manager and we can lazy load resources, but This is the kind of thing That actually indicates that you have a good at least a good design idiomatically because it makes it makes bad code Smell right it makes the smell obvious Yeah, but you know this is so so you know we we did our best to follow single responsibility principle Especially with new code that we're writing this is this is clearly, you know a class that knows too much Again, it's something that we're working. This is this is this is something we consider technical debt Yeah, it's a lot, but you know the interesting thing is again you this this is handled for you In fact, we have part of how we handle this We have some magic with with factories and and so forth and there's a whole service layer that I don't have time to get into Basically, it's just a uniform little mini framework for how to handle API and SPI But this code a lot of actually a lot of these class definitions may end up getting materialized on the fly So we're doing like aspect-oriented programming as well We're basically took all the all the tools in the kitchen and and picked like the best five and built them into the framework Yes, a lot more is a lot more to get into I actually just was teaching a class last last week and in Nairobi And I always get fired up like helping people discover helping people discover our You know the architecture and how flexible it can be Yeah, I think that's that's it. Oh and and sorry as a proof of point talking about composer We do have if you install if you get if you install magento using composer, which is how you should do it Unless you want to contribute to the core code Everything just ends up under here and you can see all of our modules are All of our modules are Individual discrete components and they all have versions and You can see that their version number is completely different from our marketing version number from like the two dot So we have this internal framework version because this actually will follow semantic versioning so as a if you if you're you know developing for a merchant or if you are developing as a Extension developer as long as you as long as you craft your Your dependency As long as you are using the right specificity with your dependencies It it's very easy to signal to people when it's time to upgrade Or when they've upgraded something that that isn't compatible with what you're doing. So the whole point of composer right That's that so Happy to talk more or just go even into more architectural stuff As time goes on if you want to get up and running and I have a link on the next slide Dev box is something that we've created that's Docker and it actually I had personally been avoiding it because it hurts so many problems With it just being being slow, etc. But we've we've we've got it tuned pretty well now so dev boxes is just it's a Docker Docker setup that will get you up and running as a developer quickly and then we have documentation for how to get your ID Working with it get x debug working with it, etc Another interesting thing that we've done is we've we've moved to a sustaining engineering model and That's it's a definition work worth looking up But essentially it's all about maintaining maintaining quality and health And so we also have an extension quality program We have a series of tests that you can run against your code to make sure it matches our code standards And all of this kind of combines into this new thing we're doing called community engineering We took our former lead of Magenta to development and he picked four of his like four of our top architects And so we are now going around to all of the community events. Well, not all of them, but a lot of the big community events We have to to coming up in in India at the beginning of May and we're doing contribution days So this is a team who is responsible for processing pull requests So one of the one of the problems we had with Magenta 2 was people were so interested in it and they started filing issues They started writing pull requests and it would take us six months to get to the pull request Which is a recipe for killing an open-source project Or killing interest in it But now we have a team dedicated to that so like in February they merged 150 pull requests in the mainline And and and several of them came from contribution days So this is people showing up to an event a day early and they spend a few a few hours actually working with our architects In addition to this we actually have we have some community gatekeepers who are working You know working on processing pull requests Sort of independently of this as well Another area of investment is a project that I'm running which is functional localization This is actually how we can change our build build functional packs that localize Magento Not just language, but also functionality for example The first thing we heard when we when we got to China last year was hey, guess what? Consumers here don't use email so it makes no sense that that your you know that your That that You know for them to see an email field when they're trying to register or check out they want to put in they want to put in their phone number You know or they want to use you know we chat or something I mean it basically there there are fundamental changes as we go to different places, so I'm working with Partners in different regions. I'm also working with open source communities in different regions to build these functional packs And finally Wrapping this all together. We have we're working on our community backlog. This is actually Going to take our product basically our product team their prioritization the things they want to build and Exposing it for the public to work on With with sort of notes on priority How to get involved? Well github.com slash Magento is a lot of our stuff there We have our community forums which are run by our our outstanding community manager sherry Meetup of course you have you have a meet-up here in Singapore. I don't have to I don't have to tell you like hey someone needs to start one here Our There are a number of community Run hackathons and you can find a lot of really good good output from that under the magento hackathon account Of course stack exchange. I was I started that site back in 2014 I think maybe end of 2013 With the help of many other community folk We actually have documentation now, which is a really big bonus for for magento Magento one totally lack documentation Magenta two we actually have tech writers But it's very cool our documentation on every single page in the top right. You'll see report an issue or edit this page and so that's all built set ghost Forget I forget what it's built basically all the contents hosted on github and Jekyll Jekyll. It's built I think using Jekyll So you can actually submit a pull request if you find if you want to add something or change something I Mentioned our dev box. This is where you can get it You'll have to create an account To download it but that's a you like to use magenta to you have to have an account because you need authorization keys To work with it and if you prefer vagrant my my friend Joshua Warren. He and his wife own a own one of our most outstanding agencies in the States Joshua still has not he's he's he's held on to his technical his technical ability So he's got a vagrant environment and it's actually made scotch and made scotch is great because it it has it actually gives you a Magenta one instance and a magenta two instance and if you're used to working with vagrant, that's your that's your pony and That's all I have Got through that About the right time for Q&A to any any questions I know that that was a whole lot of content all at once Yes Okay, so general question Magenta magenta has multiple installation paths, right? It's actually technically three So I'll explain those so you have you have typical like composer create project, right? And then you just pass in the magenta handle and Composer does the rest and actually that's part part thanks to our community that that works because we have some Magento always kind of does something a little interesting So so we we put our own we put our own little spin on that Then there is the ability you can actually just get clone from our from the magenta to repository And then you can also Install via archive like so you can just download a zip and put in place up the third one I just don't do that right because you're at some point. You're gonna need to you're gonna want to administer everything with composer I mean you can have a very specific reason to do that like if you depending on your if you have like continuous integration or continuous Deployment that is why that is allowed If you want to contribute to magenta to codebase then that's when you that's when you create your magenta instance by using get clone and Using get clone and then you know you can post pull requests to the develop branch and That's how that's how you you can give back to our codebase, but for any Like production instance or managing client installation. That's when you would use That's when you would use Composer and and it what's confused what's confusing though is when you use composer To install that's actually when you get That's when you get the codebase under under vendor under vendor magenta Right if you use if you use get clone It ends up here under app code and so what I what I recommend and this It's not it's not an imperative, but it's a it's a recommendation That You know if I were still managing merchant installations I would have all of your extensions would install here And if I work and if I were creating any extensions that I would using on multiple merchants I would I would go ahead and and you know Composerize them and make sure that they install under vendor any local changes Changes local and specific for that installation. I think it's perfectly fine to build them under app code But it can be a little confusing we actually do we have a pretty thorough explanation on dev doc So if you if you just search for you know install magenta 2 You you I think the first or at least one of the first results is our developer documentation And we'll we'll you know, we'll sort of give you the lay of the land and how to do that Now coming soon though we like the dev box actually will hook up with magenta cloud So that's our our platform offering and then we're we'll be offering Like limited time free trials of cloud now cloud is intended right now. I mean cloud is a it's a it's a it's a fairly hefty price so it's it's intended for that kind of Really big small merchant to the mid-market But we are we are working on ways with platform to actually get that product a bit smaller and a bit more affordable Just to kind of take hosting and CDN out of the question for you or out of your out of your responsibility Yeah, did that answer question. Okay, any other any other questions? Yeah So the question how well does magenta support clustering and high availability Um Magento enterprise it is so magento has two versions. We have a like the art, you know, totally free open-source community version We're working on the naming because it it's very confusing for us to talk about our lovely community and then have a community version and then our enterprise version So our enterprise version is actually just it actually is the community version with additional basically additional modules and functionality Out-of-the-box Enterprise edition has rabbit MQ. So basically native job queuing has Support for my SQL clustering Has the ability to actually split Like the order so order processing in any e-commerce app is is inherently complex and intensive so we we actually have the ability for the sales process to split off into To split that off into a separate database Let me see what else Catalog so That in any version you can you can you can you can you can wire up the different modules to a different data store Right as long as the adapters there and the adapter probably should be there since you can pull in anything from Any of the other frameworks as long as their PSR compliant They're in fact are so in magenta one even you could do this and there there there is a project that for example has Does order archiving into MongoDB? right Yeah, MongoDB We use EAV an EAV storage pattern for for our complex entities like customer basically the entities with our arbitrary attributes like products customers addresses and Kind of sales And so many people for so long I have to have this conversation at least a dozen times a year like you know Magento you're stupid you should use MongoDB for this period end of story and It's so many people have tried and it just doesn't work. It's very it is the idea EAV feels very schemalist because you're essentially building a schema into your schema because everything is so separated out and essentially abstracted but Yeah, it's really really hard where I've seen novel uses for Different data stores especially for like catalog data is people building Building catalog and reading from solar or elastic search So we have partners that have done it so it's possible all you have to do is just make the adapter for it or you know pull One in from from a project And then for probably for deeper discussions I'm not the man you need to talk to because I don't I never I never had to deal with with with scaling stuff I've the agency I worked for we always had you know guys who are really good at DevOps that were they were our sort of our The ones who helped us achieve scale, but but there's no doubt. I mean so like Magento out of the box Can you know given a certain hardware profile? We have white papers in terms of what it can do when you need to stretch beyond that when you need to get like 5,000 orders an hour You know let's say I think that the most the most I've heard there's a very like one of our top partners in Germany They did I think their their top example was Angry Birds site back when angry birds is really popular and They had that they had that on magenta one Running off aws With auto scaling I think and they had that certified to 10 orders per second Which is screaming fast But you know it takes it takes work and you have you have to handle you have to figure out your strategy for that and at scale everything you're cashing All that stuff at a certain scale it becomes very focused on the customer We try and build things as generically as possible to make sense like magenta 2 We actually have native full-page cashing, which is an enterprise feature in magenta 1. We have native full-page cashing in just built into magenta 2 core and we're just using basically just using varnish so your paid response is You of course is quite fast and then you get and you know and then once you do something stateful like customer logs in or a Customer adds something to the cart That's when you come up with different strategies and that's when like for us we have We have a whole front-end architecture. It's a little it's a little complicated But we have a front-end architecture that Theoretically just works right so even when someone logs in You know, we have a very narrow bootstrap for the app like the whole interface comes back served right out of varnish out of the reverse proxy and Then you know, maybe the number of items in the cart or the you know, hello, Benjamin The the customer greeting that's actually just done via an asynchronous JavaScript request Yeah, and and our idea is to build all of this for you and help developers do your job and we're We're getting there. It's still it's still a little opinionated. It's still a little It's still a little bit of a big architecture, but we're working on it But you get a lot. I mean you get a lot of bang for your buck Like with we have a whole front end UI component framework that that uses knockout that tries to do a lot of the heavy lifting for you Any other questions I got time for like one more So we do we have like this Magenta 2 has a couple of different modes So I mean this question is about deployment Right, so you have so when Magento is in developer mode The application is doing a lot of it's doing a lot of calculation to determine like hey Do I have all of the generated class definitions that I need are things in the right place? And if not I can I can actually infer and extrapolate where I should get them from and pull them in and then when you flip this When you flip the system over into Production mode. Yes, the assumption is everything is there So one of the one of the stories 2.1.6, which just came out huge performance improvement in in static believe it was 2.1.6 where we had static asset generation time Reduced quite a bit And they were not done there actually we actually will be doing more work We also moved we also moved Some of the generated folders we actually moved where they're located because of we Because like our cloud environment actually requires Doesn't allow right access for the production instance So you have to have you have to have like this generated content over here and and sort of like Didn't I guess the now this thing would be like an s3 bucket, right? I think that I think that's right. I can I can yeah if you really need if you need nuance nuance details I can get you in touch with the right people who are looking at this stuff Cool, that's all I have so we have I tried to make heads or tails you you have a very Very deep presentation coming up. I think So I'm looking forward to hearing it if you didn't take a look at the at the site. It's I After like 50 hours of traveling. I just couldn't think anymore So I'm looking I'm looking forward to your explanation. So thank you guys very much for your attention and yeah Thanks for being here