I’m on a roll with Nimbus stuff at the moment.
I’ve been doing a couple of talks in the last month about it, and managed to articulate how I was feeling about Nimbus before this year. And it basically comes down to Yak Shaving.
Nimbus was working for me, but to put it out into the world I wanted to write some new transports, but to be able to do that right I needed to fix the integration test harness.
I needed to re-write the documentation, but before I could do that right I wanted to change the versioning scheme, to do that I needed to re-do some of the release process. And so on.
Every big thing I wanted to do had a half dozen small and tedious steps in front of it.
Now that’s actually done, and I can work on it and ship things, a world of fun and possibilities has opened up.
So this week as I sat down to implement my 5th or 6th timer based scheduler code in something I’m building, I realised that it would actually be a great thing to just bake in to Nimbus.
So a couple of hours of hacking and some documentation later, I’ve got Nimbus.Extensions.Pulse on Nuget.
var bus = new BusBuilder()
.Configure()
.WithTransport(...)
.WithNames("MyApp", Environment.MachineName)
.WithTypesFrom(typeProvider)
.WithPulse(
("0 * * * *", new HourlyReportCommand()),
("*/5 * * * *", new HealthCheckEvent())
)
.Build();
It’s for those recurring tasks, like expiring documents, firing off processing tasks, nightly batch jobs.
Specify a Cron expression and a message, and Nimbus will fire it off on a schedule.
The detail is over on the Nimbus site.
But the real win for me is now that the shipping pipeline is unblocked, all those little ideas I have can be brought to life so much more easily.
And that’s a great feeling!
Comments
Reply to this post on Bluesky to leave a comment.