DDD Perth 2019 looks get bigger than 2018. 835 developers joined and more than 200 were in waiting list. Food got better than last year. Multiple coffee post was another small improvement as there was a massive queue last year on a single coffee post.
What I couldn’t understand is that there were 6 tracks and each track wasn’t dedicated to the same topic. I expected a track is for AI, the other for front-end, etc, etc. But, the sessions were all mixed among tracks.
The keynote was AI for Earth by Jennifer Marsman (@jennifermarsman). It was good to see the actual cases where AI is being used. I haven’t much played around AI though, it seems to me that it’s more difficult to find perfect real-life cases to utilize AI than the technical side of AI. One of the examples is to recognize a type of mosquito by reading it when the mosquito passes through. Another example is recognizing poachers from real-time images from a drone. These are a typical image/video recognition and this is what AI does well. The important point here is the effort to apply AI in real-time to make a difference. I should try a few real-life AI application.
The first session I joined is Dependency Injection is only 1/5 of the Inversion of Control problem by Daniel Sagenschneider(@sagenschneider). Normally I apply DI using IoC container like Autofac and inject infrastructure layer such as DB layer, file access, logging. The speaker here argued that these DI is 1/5 of IoC so the programs are still coupled so it is hard to refacter it. The other elements coupled in a method are return type, method name, handling of exception and thread provided to the method. and these can be injected using IoC principle. He even created a tool(http://officefloor.net/) to make this happen. This is intersting concept. However, there is no silver bullet. I wondered what would be a side effect of doing this.
Next session is a popular topic, GraphQL, gRPC or REST? Resolving the API Developer’s Dilemma by Rob Crowley(@robdcrowley). GraphQL is hot and gRPC seems to get traction. I expected real application examples and code comparison. But, as other seesion in DDD Perth, it’s more about concepts and summary only. In the end, Each of these has it’s best fit for the requirements. In particular, GraphQL is not replacing REST or better than REST. It’s just another protocal and has its place to be.
Next session is A web developer’s journey to the app store, and how you can do the same by Jacob Impson(@jacobimpson). He introduced mobile development framework, Flutter, which is another mobile development tool like React Native or Xamarin. Developed by Google and can be used for iOS, Android, etc. Don’t use html or CSS. It uses a new language called Dart. Sounds like a whole new world. Not sure it’s worth over Xamarin for C# / MS-stack developer like me.
Next seeion is Finding a Needle in a Call Stack – Intro to Distributed Tracing by
Josh Michielsen(@jmickey_). FYI, underscore in twitter id is not a typo. He shared a experience using a tracing tool, Jaeger, which is useful to trace in a distrubuted, microservice architecture system. This tools can be used with system monitoring tools like new relic or datadog, which is to find if something is wrong. Jaeger is to find where is wrong. This seems especially useful in a distributed system. As system arhitecutre evloves to microservices, it’s getting harder to pinpoint where the problem is.
Another ssesion after lunch is Every good outage starts with a queue by Macklin Hartley(@macklin_hartley). He shared experience around using queuing system like RabbitMQ or similar. A few take away were 1. monitoring is important 2. real throughput is important 3. horizontal scaling can improve the real throughput performance. Interestingly, these points are what I experienced while using WCF between client and backend system. WCF was act like a queue in a sense that it’s fast enough and had some buffer to hold quests but when the backend system perfomed poor the real throughput got smaller and the client experienced slowness or failed request. I resolved this issue by batching request. But, the speaker mentioned that batching didn’t help in his case.
In summary, AI was a one of main topics in 2019. There was lots of interest in front-end and mobile development. Not enough topics around cloud, serverless, or kubernetes than I expected. Given that not many compaies properly doing DDD(Domain Driven Design), Event Sourcing, Unit Test, CI/CD, hope to see these topics in 2020. Anyway, there are so many things to learn, try, and have fun. https://dddperth.com/