Daml Developer Monthly - July 2021
Heads up, we're trying something new, if you want the latest Daml Connect release notes scroll to the bottom. Also if you prefer to listen to this post Richard has a small podcast of it here.
First and foremost, Frankie won our latest community recognition ceremony for many reasons that can simply be summed up as being a very valued member of our forum. He'll be receiving a bobblehead in his likeness and a Daml hoodie as thanks. One day I hope to get one of these bobbleheads.
Then we had huge news from Nasdaq that they'll be supporting Daml on their Marketplace Services Platform.
The partnership with Digital Asset is another step forward in Nasdaq’s journey to create a dynamic marketplace that supports all kinds of markets worldwide. While Daml has a strong foundation in capital markets, we see opportunities for this technology in similar types of non-financial markets where supply and demand needs to be matched and later settled in blockchain or other platforms.
-Johan Toll, Head of Digital Assets, Market Technology at Nasdaq
For the rest of this Daml Developer Monthly (DDM) we're going to take a slightly different approach that we have in the past and highlight some of the wonderful questions and conversations going on around Daml to answer big questions about why things works the way they do. So read down below for some of the highlights of this month, and always feel free to check out our "Excellent Question" and "Excellent Answer" badges for...well...lots of excellent questions and answers!
One of our new team members on the DevRel team who you'll likely be seeing more of is Max. He had a great question on using a custom Auth0 on Daml Hub. Since Daml Hub is a fully end to end solution (and handles Auth for you) that's not something that's supported but it's totally understandable why someone would initially try to do this. Thanks for testing assumptions Max!
Lashenhurst wanted to know why they were seeing anomalous response times during performance testing. The short answer is "that's the JVM", the long answer (and some solutions) were provided by Samir and Gary in the thread. Even if you don't write Daml you'll want to check this one out as it applies to anything that runs inside the JVM.
David wanted to know why there's no Duplicate Key Exception in Daml (now that we've added exceptions!). To which the answer is that knowing if a key is a duplicate in a distributed context is VERY tricky and might not work as expected in all cases. Moritz gives a much more detailed explanation in his reply.
Bart wanted to create multiple contracts at the same time over the JSON API (much like you can over our gRPC Ledger API), and as anyone who's been around the forum for even a little bit knows, Moritz has the solution!
Leonid wanted to know why we can't derive Read like we can Show in Daml. The answer here is that there's tradeoffs. Read can encourage some anti-patterns like putting parsing and validation logic into Daml code rather than doing it client-side; plus some other tradeoffs you can read in the post.
Lastly, Vivek wanted to know why Daml is a full blown language rather than a library or EDSL in Haskell. Stephen gave his own answer that boils down to "Haskell is too big" and a need for absolute determinism in Daml's functionality. This is an ongoing thread so there just might be additional posts there after this latest DDM goes out.
So that's it for this edition of DDM, thanks for reading along, and don't be shy if you have questions, they just might be excellent!
P.S. As always we've got a new release of Daml. This one brings Exception handling into stable and adds a lot more logging and metrics to the Ledger and JSON API Servers. You can checkout the full release notes for 1.15.0 RC here.
P.P.S. If you want to know how to make a really serious cup of coffee Gerolf has you covered.