Saturday marked the fifth annual DDD North conference, held once again at the University of Sunderland. DeveloperDeveloperDeveloper! events are volunteer-organised conferences where members of the community propose and vote on the agenda. ScottLogic took part this year as a Platinum-level sponsor. We had many fantastic conversations with developers from all across the country, plus our squishy rugby ball giveaways were very popular!
Luckily, I managed to slack off from our recruitment stand and attend some of the great talks. As always I like to write up my impressions and pay compliments to the speakers. Overall this is one of the most diverse lineups that I've seen at a DDD event. This year's prominent topic was microservice architectures, that have been rapidly taking the developer world by storm. But there were also talks on sketchnoting, fun things to do with Raspberry Pi 2s, Deep Learning, DevOps and Usability. As the agenda is decided upon by community votes, it's always interesting to see which of the many competing ideas out there stand out from the crowd. Hopefully in the future we'll see fewer monolithic applications. Anyways, onto the talks:
Why SOA? - Sean Farmar
Sean reminded us of the big ball of mud. It's what code becomes if not regularly curated, pruned and honed. It's a product of team scaling, product growth and feature creep, under release pressures. Coupling is why this happens, but not all coupling is equal. There are many types of coupling:
- What you depend on (efferent)
- What your dependents are (afferent)
- Time (temporal)
- Deployments and endpoint locations (spatial)
- Protocols and platforms
You're not going to remove all types of coupling, but Sean covered ways of minimizing this coupling. For example, with asynchronous messaging, publish/subscribe, not hard-coding endpoints and using a "share contract and schema" mantra. Following from this Sean busted several distributed computing myths and assumptions. Your network is not secure, bandwidth may not be a problem at the moment, but when you scale it will be. For each myth, Sean described patterns for mitigation.
Monoliths to Microservices: A Journey - Sam Elamin
A nice complementary talk to Sean's SOA talk. Sam's focus wasn't to present another microservices 101 talk. Instead this was a de-brief on an effort to decouple a monolithic application and what was discovered along the way.
Sam mentioned that all developer conferences should have a failure track. As an industry, we're unique in our ability to fail fast and learn from our mistakes. This is a great suggestion, hindsight is 2020 and there is an opportunity to learn a lot. Sam gave pragmatic advice on how to get started with microservices, if you're already living in a monolithic codebase. Don't bother re-writing everything now. Instead, the next time you need a new feature, microservice it! Over time your code will gradually migrate to a more distributed architecture. Sam's team now have 290 microservices!
The example that Sam used was adding a new payment provider (let's say PayPal) to an existing application. Along the way, Sam discussed many microservice patterns mentioned earlier in Sean's talk, such as the use of pubsub and asynchronous communication and keeping your service contracts small. Sam also impressed the audience with his team's bespoke error handling system, which tracked failure rates and if a threshold was hit, would terminate a service and flag the on-call developers of an issue.
React for .NET Developers - Macs Dickinson
Macs' talk aimed to introduce React to .NET developers, most likely for use within the client-side of their ASP.NET applications. Macs justified this by looking into ASP's long history and seeing an increasing demand for rich, interactive client-side functionality, with fast load times. Admittedly, a trend not unique to .NET. Macs provided a comprehensive introduction to React, which you can do because its functionality is so incredibly specific. From creating and rendering a React component, he introduced the scary-looking-but-totally-not-scary JSX, looked at React component properties and internal state. What most impressed me was Macs' demonstration of how fast React can be, by rendering thousands of numbers (and applying CSS styles) on-screen and changing them at customisable intervals.
Macs showed how well React works in Visual Studio. It's nice! I enjoyed learning about ReactJS.NET - a tool for server-side JSX compilation in ASP.NET MVC, so that applications can benefit from server-side rendering. Hooray SEO! Finally, TypeScript 1.6 supports JSX. Macs showed that React and TypeScript in Visual Studio is a pleasant setup. A great talk to end the day.
For the fifth year running, DDD North has been a massive success, reaching record attendance. It is now claimed to the be the largest conference of its type in the country. Such success is down to the organisers (thanks, Andy, Linda and co!) and speakers, all of whom donate their time. They are driven by a passion to build a thriving community focused on education and integration. We all have a million things to be doing on a weekend, but if possible, I'd highly recommend popping along to next year's event. I guarantee you'll learn something new and make new friends.