We are looking at Event Driven Architecture examples. There was an event in London a few weeks ago, called EDA Day. It was organised by GOTO with a lot of AWS contributors. It was neat because it was one day focused on event driven architectures. And there was an AWS and serverless slant.
The timing of EDA Day was perfect!
It was fascinating because it showed the coming together of a 15 to 20 year old pattern of EDA, plus serverless. And all the bigger services on top of that, like Eventbridge and Step Functions.
A lot of the barriers to entry are starting to be removed. There are a lot more developer friendly services and capabilities to explore and experiment with. The feedback loop and iteration cycles are quicker. You can fire up eventbridge or use SNS or SQS. We’ve codified these patterns and CDK patterns in Serverless land. So they’re more approachable now than they have ever been. And a lot more practical so you can rapidly experiment with them. The timing was perfect for an EDA Day to bring it all together.
I don’t know if it’s a modern thing. But when you think about things like Team Topologies, and how to organise your domains and domain driven design, the industry has come on a wee bit in recent years. It’s easier to own an area of a platform, than it ever was. And you think about how teams should be set up, interact and move from one area to the other. We can do that now because we can leverage EDA and event driven approaches to organisational design and product design as well. We’re in a better spot than we were a few years back.
High performance teams, loose coupling and building for rapid product delivery is critical right now. So EDA fits the bill for that.
EDA Day Resources, Talks and Slides
If you’re interested in EDA Day, google GOTO. They organise great conferences like GOTO Amsterdam, GOTO Copenhagen, etc. Google GOTO EDA Day and you’ll see a bunch of stuff there. You can download slides.
I remember talking about this 15 years ago. You think of people like Gregor Hohpe, who first wrote the pattern up. And Eric Evans talking about domain driven design. I remember speaking to those people 15 years ago, and thinking this is a cool idea. But it would be so hard to do. You needed a huge team to do it. Now you can spin these things up pretty quickly.
Gregor Hohpe ‘I made everything loosely coupled. Does my app fall apart?’
And that leads us to EDA day itself, because Gregor Hohpe did the keynote talk: ‘I made everything loosely coupled. Does my app fall apart?‘ And he set the scene really well. Gregor is an AWS enterprise strategist. And he talked about the event landscape and the complexities behind event driven and architecture.
He had a diagram called: ‘A calls B’. It looked pretty simple until you get to the million things you need to think about when A calls B! And he’s not selling AWS, He says there’s a million ways to do this. You have got to pick the right way. He has a great way of talking about things.
Engineering discipline and rigour
When we get into the topics in The Value Flywheel Effect book, we talk about building momentum and next best action. You have got to be able to assemble the systems in a composable fashion. That requires a lot of discipline. We harp on about well architected and adopting good design practices. And some of the talks we will get to later. Like how to use domain modelling etc. But it’s difficult. And it requires a certain degree of rigour.
Earlier today, we were having conversations on eventing within the box and eventing across the box. And internal/external eventing. There’s a lot of engineering rigour and design challenges to do. But with serverless and rapid delivery, you can embrace it and move fast: iterate, rapidly increment, change, pivot or do whatever you need to do. It all comes back to engineering rigour and well architected.
One of the big differentiators is that these things are codified and patterns are readily available. And Gregor talked about it. You have composable building blocks that you can build upon. So you’re not starting from first principles of event driven architecture. You are able to leverage higher order building blocks to rapidly build event driven architecture,
Three languages in a Cloud Native Serverless Domain
Gregor explained it really well. He said that there were three languages in a cloud native serverless domain.
- You’ve got the business domain and how you talk about the business domain as a business person.
- The eventing architecture and how you talk about it as an architect.
- And then the cloud native area, and how you talk about it as a cloud engineer.
So DDD, event framework and CDK for automation. It’s about having those three separate languages and how you talk. And bringing them together at the end. It was a cracking talk to kick EDA Day off.
Serverless Espresso and AWS Labs
They had a whole bunch of stuff running. And one neat thing to mention is a developer advocate called Julian Wood. He, Ben Smith, and a few others from Serverless Land, put together a demo called Serverless Espresso. You scan a barcode and through an event driven step function, event bridge sequence, you can order a coffee from your phone. It looks and sounds really simple. But you watch the whole thing happen. So look up AWS labs, to see Serverless Espresso. It’s well put together to show how you build an event driven architecture from the ground up.
That’s the big thing, isn’t it? Five years ago, if you wanted to do something like that, you would have used Kafka or something else hefty and overpowered. And completely unfit for what you wanted to do. Or some sort of queue which leads to the questions: who owns the queue and who is going to run the queue. Patterns are super powerful. When people get their hands on that stuff, there’s no going back.
In the past those things would have been cost prohibitive. Everyone would have run a mile before they would have fired that up on their account. But with the low cost serverless options now, you can quickly do this and not worry about hundreds of dollars of AWS costs.
Ben Ellerby and Minimal Viable Migrations
Another good speaker was Ben Ellerby. He worked in Theodo and is an AWS Serverless Hero. He had a talk on Minimal Viable Migrations. A lot of people think event driven is a greenfield or brand new thing. But he had a great talk about existing architecture and going event driven. He talked about doing a small part of your architecture and going bit by bit. So using an incremental model.
His article on EventBridge Storming is essential reading for anyone trying to build out an event driven architecture. It’s taken the event storming work of Alberto Brandolini on. And adds event bridge elements and detail to it. He has a fantastic blog as well. Check it out.
Ben’s got a great company that he founded after Theodo called Aleios. They do that actual stuff. They’re well worth a look for brilliant content.
David Boyne and Thinking Event First
And David Boyne has done a whole bunch of stuff. He has joined AWS and does ‘Awesome EventBridge’. He has open source projects. And he does a great talk on ‘Thinking Event First’. How to approach events and get your schemes right. And really think about your domain model and lock it in from day one. So he’s got a bunch of tools as well. So it’s worth looking up his resources on ‘Awesome EventBridge’.
The event catalogue is awesome as well.
There’s a recent blog he came out with on this topic. It’s about domain driven design. And it’s in line with what you were just saying about Ben and event storming. And creating your bounded context. Great content for anyone who is interested.
Developer Advocate Community Access
One big advantage of not doing undifferentiated heavy lifting. And leveraging AWS managed services is having access to the developer advocate community. They build, document and do workshops and tutorials that we can leverage. We come across problems in our own context. And we’re able to see the likes of David putting out stuff that’s relative and relatable to what we are seeing internally. It’s great that they’re there. They’re continuing to invest in the developer advocacy community. Because it’s been a great resource for us. And the work they’ve done in Serverless Land as well.
The best thing is we’ve worked with lots of software vendors in the past. And usually the labs are like a secret sauce. If you pay us lots of money, you can get access to the lab, and it’ll be great. And you can see this lab secret. These guys will stick them online for nothing. GitHub for free! You want the lab, there it is! Download it yourself and do it yourself, please. It’s a great democratisation of information, which I think is brilliant. We’re not all privileged enough to travel and get into expensive training courses. Sometimes you just want to just grab something to have a look at it.
Marcia Villalba and Best practices to design and build event-driven applications
Another great speaker was Marcia Villalba. She has a lot of brilliant content. She’s one of the developer advocates at AWS. She’s got great content on good practices and getting started. She has a really nice way of explaining these concepts. There is one thing I get nervous about around event driven and domain driven. People who are good at it tend to get very complicated very quickly and lose everyone. But Marcia’s super at bringing these concepts across and helping normal teams, which is every team.
That’s something we coach with our engineers. Around observability and being able to trace these things through their workflows in their life spans.
Check out her FooBar Serverless YouTube channel. There is tons of developer friendly content from beginner to more advanced. It’s one of my YouTube subscriptions that I watch quite regularly.
Sarah Hamilton and Sheen Brisals – LEGO Group Talks
The last one to talk about is Lego. They sponsored the event. And they had two talks. Sarah Hamilton is one of the software engineers and she gave a really good talk about the advanced techniques they’re using in their event driven architecture.
My friend, Sheen Brisals was speaking as well. They have a fantastic story, which is well worth listening to. It’s about how they moved to an event driven serverless architecture. There’s a socio-technical element to this. How you organise your teams and the attitude is what I would call a core engineering competency and mindset. As opposed to an architectural pattern. Lego tells the story brilliantly.
One of the biggest things about the Lego approaches is that it’s based on user needs. They’re good at articulating the need that they’re trying to solve. And then what pattern or technology they’re bringing to bear to solve it. Sheen Brisal’d blog and the Lego engineering blog have been great for sharing their learnings, which is fantastic.
I’ve gone through the slides but haven’t seen the talk yet. But it sounds like they are working at scale as well. They’re streaming Kinesis. I’ve never managed to get a good use case for Kinesis. A lot of my experiences are with SQS SNS and we’re just getting into EventBridge now. So it’s good to see teams out there pushing us all on.
All these things are happening at a massive scale. Their entry point was to scale for a Black Friday event. But it’s brilliant to hear how they put all that together.
There’s something about EDA and Serverless
You find that a lot of these technologies and services facilitate you to learn the trade of EDA. You start off using basic SNS, SQS and evolve into event bridge. When you’re going up to the next level, you can learn about Kinesis. It supports evolutionary architecture which is another benefit of EDA. It’s good to see different teams at different periods in their evolution. And leverages tech in very different ways, which is awesome.
In yesteryear, the design you needed to do for an EDA was the most difficult thing to get right. If you built it yourself from the ground up, you got it working at a basic level. But when you started to scale, you had to re-architect on the fly. That was really difficult.
But now with this modern approach, you can spend your time on the design. And when the skill comes, the tools have it for you. You still have to tweak a few things. But at least you know that event bridge isn’t going to fall over. With some currency it will probably scale faster than you can. You are not stuck hand cranking a load of messages flying around. It’s not pretty when you get scale.
Reliability is a topic for event driven systems. Low operational burden gives you more time to focus on reliability and quality.
You don’t want to be sitting and worrying about the size of queues and buffers etc. I will not sit up all night watching queues.
Product Leader Panel
Then the event ended with a panel of product leaders from Eventbridge, Step Functions and MongoDB. It was a really relaxed panel. Emily Shea, who we know well, was there. She works in go to market for serverless. It was a relaxed chat. No one was pushing any tools. They were shooting the breeze on good practice and what’s coming down the track. The evolution of event driven architecture and the tie in with serverless. There’s something in it! I don’t want to say Serverless is becoming EDA or EDA is becoming serverless. But serverless enables EDA for sure.
There are huge synergies there.
Take a look at GOTO and GOTO Play. It will have a lot of other videos. On the website, in the schedule, you can click on the speakers and a lot of them have slides there. The talks will come out on the GOTO Play YouTube channel in the next couple of weeks.
Transcribed by https://otter.ai