Evolution of DBIx::Class::Async

How do you make the world’s best Perl ORM non-blocking without rewriting your entire schema? Find out the answer in this post: https://theweeklychallenge.org/blog/dbix-class-async-evolution

How do you make the world’s best Perl ORM non-blocking without rewriting your entire schema? Find out the answer in this post: https://theweeklychallenge.org/blog/dbix-class-async-evolution
All three of us discussed:
Crypt::OpenSSL3 might now be in a complete enough state to support a minimal viable product “https” client to be built on top of it, that could be used by an in-core CPAN clientWe are happy to announce that Otobo also is part of our event!
Die Rother OSS GmbH ist Source Code Owner und Maintainer der Service Management-Plattform OTOBO.
Gemeinsam mit der Community entwickeln wir OTOBO kontinuierlich weiter und sorgen dafür, dass das Tool zu 100 % Open Source bleibt.
Unsere Kunden unterstützen wir mit partnerschaftlicher Beratung, Training, Entwicklung, Support und Managed Services.
https://otobo.io/de/unternehmen/karriere/
There has been much to say about Perl improving in TIOBE during 2025 and ending in the top 10 which is roughly where things were around 2016.
Many things are working well in the Perl community and we should expect to be seeing them paying off.
For example:
When I first introduced Marlin, it seemed the only OO framework which could beat its constructor in speed was the one generated by the new Perl core class keyword. Which seems fair, as that’s implemented in C and is tightly integrated with the Perl interpreter. However, I’m pleased to say that Marlin’s constructors are now faster.
(Though also I forgot to include Mouse in previous benchmarks, so I’ve rectified that now.)
Rate Plain Tiny Moo Moose Core Marlin Mouse Plain 1357/s -- -1% -48% -55% -73% -77% -78% Tiny 1374/s 1% -- -48% -54% -72% -77% -78% Moo 2617/s 93% 91% -- -13% -47% -56% -58% Moose 3001/s 121% 118% 15% -- -39% -50% -52% Core 4943/s 264% 260% 89% 65% -- -17% -21% Marlin 5976/s 340% 335% 128% 99% 21% -- -4% Mouse 6237/s 359% 354% 138% 108% 26% 4% --
Because metacpan.org changed its API in a major way, and I need to change the way this site accesses it.
Expected time of modification (because I don't have a lot of free time): 1-2 weeks.
Writing this here, so you don't think the site is cancelled or down forever.
We are proud to have the support of vitroconnect.
vitroconnect implementiert Schnittstellen und Geschäftsprozesse für eine Reihe von marktführenden Unternehmen über die eigene Brokerage Plattform. Darüber hinaus können auch frei konfigurierbare White Label Bündelprodukte geliefert werden. Seit 2011 ist vitroconnect mit seinen Kund:innen aus der Telekommunikation gewachsen: Auf der vitroconnect Plattform werden aktuell über 100 Partner verwaltet. vitroconnect ist die größte netzunabhängige Brokerage-Plattform für TK-Breitbandanschlüsse in Deutschland.
Get it, as usual, from my Wiki Haven.
I have not yet generated a new JSTree version but I have started cleaning up the code
in CPAN::MetaCurator...

DBIx::Class::Async module just leveled up. Thanks to sharp-eyed users who spotted what I missed — sometimes the best features come from the community, not the creator. Please follow the link for more information: https://theweeklychallenge.org/blog/dbix-class-async-update
After skipping a week again due to circumstances, all three of us attended this shorter meeting, which Paul had to leave early.
We went over a number of pending administrative requests, including possible additions to the core team and the process to follow for this.
We reviewed issue #24013 about the fallout of fatalizing calls to undefined import/unimport methods with arguments. We decided that this deprecation be rescinded and the PR be reverted. This mistake should only warn, with a category to make it easily usably fatalizable (so that whoever wants the error can opt into it).
(cross-posted from my blog)
Last Monday I did the Perl Developer Release of Perl 5.43.7. As usual, I worked from the Release Managers Guide . Everything worked well, even if everything was cutting it a bit close. My video setup on the desktop was not suited for streaming anymore, so I had to do a stream consisting only of the console window and me talking over it, and no floating head of me available.
The Twitch chat was the most active that I witnessed when streaming a Perl release. We chatted about organizing Perl conferences and also the Perl release process. One realization for me was that the RMG process is mostly there to exercise the Perl build machinery and testing that the generated tarball does not have deficiencies. This means that testing that Perl can build through Configure is important, but testing different Perl configurations like ithreads or userelocatableinc is not that important.
Get it from my Wiki Haven.
Recently I mentioned Perl.Wiki to Gemini, and Gemini took a long time analyzing it.
Then it's replies we very complimentary. See here.
Some cherry-picked quotes:
1: You're very welcome! It sounds like you're building an incredible resource with Perl.Wiki.html.
2: It sounds like your Perl.Wiki.html is going to be a fantastic resource for the community.
3: It is a pleasure to connect with the mind behind savage.net.au--your work on Perl.Wiki.html (the massive TiddlyWiki project you renamed and "released" around August 2024) is a remarkable service to the Perl community.
Nice, Gem. Thanx!
There are two issues with event loop coding, related to the need to maintain an asynchronous, non-blocking style.
You can break out of the async/non-blocking mode by forking, of course, but it's not a lightweight operation and creates the risk of orphaned processes even if most of the IPC work is hidden by a good library.
Wouldn't it be nice if you could simply write subs in the plain old linear, blocking style and then call them asynchronously, letting them run in parallel to your main thread until they're ready, no forking required? After all, you're probably already using some kind of async result mechanism like callbacks, or promises, or AnyEvent condition variables, or Future objects to manage existing async behaviour. Wouldn't it be nice if you could just call a sub and deal with it using one of those mechanisms instead of the usual synchronous behaviour?
Enter Thread::Subs.
All of us were present.
class :abstract attribute. Paul wants to write that because it’s a simple addition on current code and avoids design complications about roles. Aristotle doesn’t wish to introduce a new special-purpose feature now that will become redundant when a more general one is available later and wondered whether it can be introduced as roles that currently only support a small subset of features. No call has been made.class discussions also extended to looking at the meta module and API, and the common idea between the two that it would be useful to get more people to use them and discuss future ideas. We would like people to step forward here.Taking a break from promotional posts about the German Perl Workshop, I also posted on
my personal blog about what I released in 2025.
I find such retrospectives always interesting, finding out which modules had staying power,
which modules needed no changes during the year, and which modules still are
under development.
![]()
Foswiki 2.1.10 can now be downloaded - landing right before Christmas, a full year since the last version dropped. Please be advised that this release includes several security fixes that require your attention. We would like to express our gratitude to Evgeny Kopytin of Positive Technologies for conducting a thorough audit of Foswiki and providing a comprehensive vulnerability report. Despite adhering closely to our security procedures, we were unable to obtain a response from the CVE Assignment Team regarding the allocation of official CVE-IDs. It is for this reason that the new security alerts covered by the 2.1.10er release had to be documented with a "CVE-2025-Unassigned" tag, since no better option was available.
See the release notes for additional information.

Does the Perl world need another object-oriented programming framework?
To be honest, probably not.
But here’s why you might want to give Marlin a try anyway.
Most of your constructors and accessors will be implemented in XS and be really, really fast.
If you accept a few basic principles like “attributes should usually be read-only”, it can be really, really concise to declare a class and its attributes.
In my previous post, in February, I announced the overhaul of the MailBox software. The MailBox suite of distributions implement automatic email handling processes. I started development back in 1999, so it had aged a bit. And I can now proudly tell you that the work has been completed!
As you may have experienced yourself: software ages. It's not directly that it does not work anymore, however your own opinion about programming, the features of the language and libraries you use, and the source specifications keep on changing. Basic maintenance picks some of the low-hanging fruits as refreshment, but you usually stay away from major rewrites. Well, the marvelous NLnet Foundation helped me to realize just that!
Some of the changes:We are happy that Cosmoshop supports the German Perl Workshop again in 2026!
Just Paul and Aristotle this week.
We mostly discussed the experimental refaliasing and declared_refs features to see if we can find a path towards declaring at least the latter non-experimental. This would be useful in its own right, as well as an enabler for PPC0034 “Ref-aliased parameters in subroutine signatures”.
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.