We've got all of our disparate services. This is for a Composable e-commerce site. All of them are interdependencies and siloed out into different areas, and then our data source is feeding into that, and then our decoupled front-end finally serving that and giving that to our end users. But the reality once you start building these kinds of Composable products can be a little bit different. You start to build in links and dependencies between the different services and the data products and all of that kind of stuff, and what you end up actually doing is building a Composable monolith. All of these different building blocks that are now interdependent on each other.
So we want to run through a few quick tips and tricks as to how to avoid that and build some really awesome Composable experiences. So the first one is federate your content layer and this is really really important. If you make sure that you have an abstraction in front of all of your content layer and everything feeds into that and plugs into it this means that when you want to bring something out and rip it out and replace it you're changing it in one single layer and everything above and below that is not affected. And this can be really powerful in terms of future proofing your application but also in terms of making sure that it's easy for developers to cross-pollinate data between different sources without having to have all of these different connectors one layer down into the data layer.
My next thing is keep it simple. Try and start off with a really small project. You can still run your legacy system side by side and take away like one simple bit, the car or the blog or something like that. Start to build that out as a composable architecture and then gradually build over time. The nature of these projects is they get more complex the more pieces you add in, but if you're really smart about building carefully and have a really clear migration pattern in terms of migrating literally one page at a time sometimes, then you can stop yourself getting into this mess and into the weeds and build it really properly from the foundations up.
My next tip is around front-end orchestration. Now this is the classic build versus buy argument. Yes, you can go and build like a really awesome CICD flow with your dev and staging environments, you know, infrastructure orchestration going and now pushing that out onto Kubernetes clusters and running production environments with failovers and then putting that all behind a CDN and having this kind of localized content through there as well. But the reality is, it's really hard to piece together, it's going to take you a long, long time, and actually, you're probably not going to get all the features and functionality that you would from the front-end orchestration tool. And that's what we're talking about, there's some super awesome frameworks out there that give you awesome rendering modes and all that kind of stuff, and to get all of that working harmoniously with things like serverless functions and edge functions is a real headache. So, this is definitely one where I would go and check out the market, see what's on offer and see what front-end orchestration tool suits you. Personal favorite of mine is serverless functions and serverless functions are your friends.
My final tip is around embracing the edge. Now, edge functions are a really, really cool thing. They're distributed logic out on the CDN edge itself and this gives you the ability to do some cool stuff around personalization, localization, authentication, things that were typically kind of more server-side or client-side. You can actually now move into an edge function and this means you get all the benefits of things like a server-side transform of your page, but you don't lose any speed. This can be really powerful, especially around that localization piece where I want to redirect or rewrite pages or manipulate the HTML itself on the edge. So, I would definitely start taking a look at this early doors and see if you can incorporate it into your project.
So, there's my five top tips. Hopefully, this has been a useful lightning talk and you've learned something a little bit out of that. Feel free to hit me up and I hope you have a great rest of your conference.
Comments