Particular Software
@particular.net
📤 190
📥 102
📝 949
Makers of NServiceBus and the most developer-friendly service platform for .NET
Looking for a safer way to correct message data when something goes wrong? The Particular Service Platform provides a structured approach to editing messages without failure
loading . . .
Fixing malformed messages • ServicePulse
Describes the concept of fixing and retrying malformed messages in ServicePulse.
https://docs.particular.net/servicepulse/intro-editing-messages
about 1 hour ago
0
0
0
In a hospital ER, birthdate is nullable because patients sometimes arrive unconscious. In a pharmacy, birthdate is a rule that controls what patients get access to which drugs. How do we integrate these two systems?
loading . . .
Fallacy #8: The network is homogeneous
Interoperability is painful. Around 2005 or 2006, it wasn’t so bad. Most of the code running on the planet, at least the code that mattered, was written in .NET or Java, and interoperability via web…
https://particular.net/blog/the-network-is-homogeneous
about 9 hours ago
0
0
0
AI agents will need to train on their conversations with users in order to continue to learn. However, doing so without explicit data indicating whether or not a given response solved a given problem will make it very difficult to determine which responses to weight higher than others.
loading . . .
Llms Need Mark as Answer
Just like systems like Stack Overflow benefited from having the accepted answer bubble to the top, so too will it become important for LLMs to pull in such information for their future training data.
https://ardalis.com/llms-need-mark-as-answer/
about 15 hours ago
2
2
1
JetBrains Developer Advocate Rachel Appel describes deceptive UI practices. She cautions developers and marketers to avoid these practices, which often lead to a loss of trust and other long-term problems. She informs users what to watch out for, and how to remain vigilant.
loading . . .
https://www.youtube.com/watch?v=mzRiDTpkKNU
1 day ago
0
0
0
Reactive resilience strategies are essential tools for building reliable distributed systems. Each strategy addresses different failure scenarios: * Retry handles transient failures
2 days ago
1
0
0
Indefinite locks belong to a world where processes never crash and networks never split. That world does not exist. In a distributed system, “I hold the lock” can mean…
3 days ago
1
0
0
AI generated code ships 55% faster but shows 41% higher churn. When you're adding features at twice the speed, architectural mistakes compound at twice the rate too. That's the velocity paradox this article explores. by Dariusz Gafka
loading . . .
Your AI is Shipping a Big Ball of Mud
AI coding assistants have created a velocity paradox. Developers ship code 55% faster, but architectural mistakes compound much faster too.
https://blog.devgenius.io/your-ai-is-shipping-a-big-ball-of-mud-e44d1e4193e0
3 days ago
0
1
0
New blog series translating Unmesh Joshi's Patterns of Distributed Systems catalog into
#CSharp
and
#dotnet
. Covers 30+ patterns: leader election, write ahead…
4 days ago
1
0
0
Containerizing a
#dotnet
service and calling it "cloud native" is easy. Making it survive restarts, scale correctly, and deploy without dropping requests is where most teams struggle. This guide covers the operational gap. by Sudhir Mangla
loading . . .
Kubernetes for .NET Services: Health, HPA/KEDA Autoscaling, and Zero-Downtime Rollouts
Learn how to run production-grade .NET services on Kubernetes with health checks, HPA and KEDA autoscaling, GC tuning, Gateway API traffic shifting, and zero-downtime deployments.
https://developersvoice.com/blog/azure/production-ready-dotnet-services-on-kubernetes/
4 days ago
0
0
0
The Particular Service Platform provides early signals to help your team respond before things escalate. See how health checks help your team stay proactive in the face of event failure
loading . . .
Health check notifications • ServicePulse
Describes how to setup email notifications for failing ServiceControl internal health checks.
https://docs.particular.net/servicepulse/health-check-notifications
4 days ago
0
0
0
How quickly can your system identify what patient data was accessed, by whom, and when? HIPAA's Breach Notification Rule gives you 60 days. If your logging can't answer that, it's an architecture problem, not a tooling one. via Sudhir Mangla
loading . . .
HIPAA-Compliant Azure Architecture for .NET Healthcare
Design HIPAA-compliant .NET healthcare systems on Azure with secure IAM, audit logging, encryption, BAA requirements, and high-availability architecture patterns.
https://developersvoice.com/blog/azure/hipaa_azure_net_architect_implementation/
5 days ago
0
0
0
Ever scaled a service from one instance to two and had scheduled jobs suddenly fire twice? That's accidental multi leader behavior, and it's more common than you'd think. Good walkthrough on implementing lease based election in C#. via Chris Woodruff
loading . . .
Leader Election in .NET: Picking One Boss Without Creating Two - Chris Woody Woodruff | Fractional Architect
If your service runs on more than one node and still has a single instance assumption, you already have leader election. You just do not have it on purpose. Leader election is the pattern that turns “somebody should run this” into “exactly one node is allowed to run this, and it must keep proving it
https://woodruff.dev/leader-election-in-net-picking-one-boss-without-creating-two/
5 days ago
0
0
0
Sometimes the best takeaway from a source generator review is that the underlying API is already well designed. If the manual code is simple and performant, maybe a generator isn't needed. Good analysis from @andrewlocknet on
#dotnet
metrics
loading . . .
Exploring the (underwhelming) System.Diagnostics.Metrics source generators: System.Diagnostics.Metrics APIs - Part 2
In this post I explore the source generators shipped in Microsoft.Extensions.Telemetry.Abstractions, explore the code, and discuss whether I would use them
https://andrewlock.net/creating-strongly-typed-metics-with-a-source-generator/
5 days ago
0
0
0
#dotnet
has had built in metrics APIs since .NET 6, but many teams still aren't using them for custom application or business metrics. This post by @andrewlocknet covers what's available and how to get started with System.Diagnostics.Metrics
loading . . .
Creating and consuming metrics with System.Diagnostics.Metrics APIs: System.Diagnostics.Metrics APIs - Part 1
In this post I provide an introduction to the System.Diagnostics.Metrics API, and show how to create a custom metric and read it with dotnet-counters
https://andrewlock.net/creating-and-consuming-metrics-with-system-diagnostics-metrics-apis/
6 days ago
0
0
0
A lease is a lock with a deadline. The hard rule: if you can't renew, you stop acting like the owner. This walkthrough covers atomic acquire, atomic renew with Lua, token checked release, and a leader election loop using Redis and .NET. By Chris Woodruff
loading . . .
Lease Pattern in .NET: A Lock With an Expiration Date That Saves Your Data - Chris Woody Woodruff | Fractional Architect
Indefinite locks belong to a world where processes never crash and networks never split. That world does not exist. In a distributed system, “I hold the lock” can mean “I held the lock before my VM paused for 45 seconds.” A lease fixes that by putting a deadline on ownership and forcing the owner to
https://woodruff.dev/lease-pattern-in-net-a-lock-with-an-expiration-date-that-saves-your-data/
6 days ago
0
1
0
Ever added a unique constraint for idempotency and still ended up with duplicate side effects? Derek Comartin walks through why inbox tables don't protect external calls and five strategies to design for "effectively once" instead of "exactly once."
loading . . .
Your Idempotent Code Is Lying To You - CodeOpinion
Idempotent handlers aren’t automatically safe. Here’s why “idempotent” can still mean duplicate side effects, and what patterns actually work.
https://codeopinion.com/your-idempotent-code-is-lying-to-you/
6 days ago
0
0
0
Sometimes message data is just wrong. So how do you fix it without causing more damage? See how controlled editing works on the Particular Service Platform
loading . . .
Fixing malformed messages • ServicePulse
Describes the concept of fixing and retrying malformed messages in ServicePulse.
https://docs.particular.net/servicepulse/intro-editing-messages
7 days ago
0
0
0
Production systems will fail. When they do, your recovery depends on how well you can see what went wrong and why. This intro to OpenTelemetry covers why observability matters and what it takes to get started with the emerging standard. via @nimblepros
loading . . .
OTEL - An Introduction To OpenTelemetry
It's inevitable that production will fail. Your ability to respond quickly greatly depends on being able to determine what went wrong.
https://blog.nimblepros.com/blogs/otel/
7 days ago
0
0
0
Don't connect a WPF app to
#NServiceBus
, forward those events to
#SignalR
instead. See how!
loading . . .
Near Real-Time Occasionally-Connected Clients • NServiceBus Samples
How to relay NServiceBus events to occasionally-connected clients via SignalR.
https://docs.particular.net/samples/near-realtime-clients/
7 days ago
0
2
1
Check out our sample on hosting
#NServiceBus
endpoints in
#Docker
Linux containers
loading . . .
Hosting endpoints in Docker Linux containers • NServiceBus Samples
Hosting multiple endpoints in several Docker Linux containers managed by Docker Compose.
https://docs.particular.net/samples/hosting/docker/
8 days ago
0
0
0
Learn how to build an NServiceBus saga to model a situation where you call one shipping provider, and set a timeout so that if it doesn't respond within your SLA, you can ship via a backup shipping provider instead
loading . . .
NServiceBus sagas: Integrations
Learn how to use NServiceBus sagas to manage integration with external systems that communicate via HTTP.
https://docs.particular.net/tutorials/nservicebus-sagas/3-integration/
8 days ago
0
0
0
"Tired of dealing with duplicate messages or outbox patterns in your .NET apps? âś… Use PostgreSQL for messaging AND persistence âś… Handle everything in a single atomic transaction
9 days ago
1
0
0
Use
#NServiceBus
(even) in legacy systems using SQL Server. See how to get started with this sample
loading . . .
SQL Server transport native integration sample • SQL Server Transport Samples
Integrating natively with the SQL Server transport.
https://docs.particular.net/samples/sqltransport/native-integration/
10 days ago
0
0
0
#RabbitMQ
has clients for just about any language, and
#NServiceBus
can process messages from all of them
loading . . .
RabbitMQ transport native integration sample • RabbitMQ Transport Samples
Consuming messages published by non-NServiceBus endpoints.
https://docs.particular.net/samples/rabbitmq/native-integration/
10 days ago
0
0
0
In event-driven systems, large events are a design smell…keep them as small as possible. Services should really only share IDs and maybe a timestamp to indicate when the information was effective. Putting your events on a diet, on our blog:
loading . . .
Putting your events on a diet
Anybody can write code that will work for a few weeks or months, but what happens when that code is no longer your daily focus and the cobwebs of time start to sneak in? What if it's someone else's…
https://particular.net/blog/putting-your-events-on-a-diet
11 days ago
0
0
0
When a 3rd party dependency goes down,
#NServiceBus
's monitoring solution can let you know
loading . . .
Monitor third-party systems with custom checks • ServiceControl CustomChecks Samples
Monitoring third-party systems which are exposed as HTTP endpoints with custom checks.
https://docs.particular.net/samples/servicecontrol/monitoring3rdparty/
11 days ago
0
0
0
Clear insight into failed messages can make recovery work far less stressful. Retry failed messages with confidence using the Particular Service Platform
loading . . .
Retrying failed messages • ServicePulse
Describes the concept and lifecycle of retrying messages in ServicePulse.
https://docs.particular.net/servicepulse/intro-failed-message-retries
11 days ago
0
0
0
Logging isn't about logging more — it's about logging what you actually need to diagnose a failure at 3AM. Log smarter and with intent. Read about some of the common anti-patterns in logging and their practical solutions in this blog
loading . . .
Why Your Logging Strategy Fails in Production — Daily DevOps & .NET
Let me tell you what I’ve learned over the years from watching teams deploy logging strategies that looked great on paper and failed spectacularly at 3 …
https://daily-devops.net/posts/dotnet-advanced-logging/
12 days ago
0
0
0
"2413 exceptions last night." … "Only? Did one of the batches crash?" If this sounds like a conversation you've had recently, find out a better way to deal with exceptions. I caught an exception. Now what?
loading . . .
I caught an exception. Now what?
I can’t draw to save my life, but I love comics, especially ones that capture the essence of what it’s like to be a software developer. They capture the shared pain we all go through and temper it…
https://particular.net/blog/but-all-my-errors-are-severe
12 days ago
0
0
0
In this video, @DavidBoike describes what it's like to work here at Particular Software, the fully-distributed software company with no office and no managers
loading . . .
Home Alone: How working for a fully remote company actually works
🔗Transcription 00:06 David Boike Well, welcome everybody to Home Alone, the story of how working for a distributed company really works. My name's David Boike, that's my Twitter, same as my name,…
https://particular.net/videos/home-alone-how-working-for-a-fully-remote-company-actually-works
12 days ago
0
0
0
In event-driven systems, large events are a design smell…keep them as small as possible. Services should really only share IDs and maybe a timestamp to indicate when the information was effective. Putting your events on a diet, on our blog:
loading . . .
Putting your events on a diet
Anybody can write code that will work for a few weeks or months, but what happens when that code is no longer your daily focus and the cobwebs of time start to sneak in? What if it's someone else's…
https://particular.net/blog/putting-your-events-on-a-diet
13 days ago
0
0
0
Overusing async, unmanaged resources, and DateTime pitfalls are still common in C#. Read about some of the common mistakes in C# that can cost you and ways to steer clear of them in this C# Corner article
loading . . .
Common C# Mistakes Even Senior Developers Make
Avoid common C# pitfalls! Even experienced developers make mistakes like misusing async/await, ignoring IDisposable, and over-abstracting. Learn to write better C# code.
https://www.c-sharpcorner.com/article/common-c-sharp-mistakes-even-senior-developers-make/
13 days ago
0
0
0
Understanding how a saga behaves across its full lifecycle can be tricky. But it doesn’t have to be! With the Particular Service Platform, you’ll see a visual timeline…
13 days ago
1
0
0
Allow your endpoints to talk to each other, even if they use different transports. NServiceBus.Transport.Bridge is now available
loading . . .
Messaging Bridge
Connect endpoints in a system that use different transports with the messaging bridge.
https://docs.particular.net/nservicebus/bridge/
13 days ago
0
0
0
Watch this video for a deep dive into Async in .NET with @danielmarbach. Even if you think you know async inside and out…you probably don't
loading . . .
Cliff diving into async in .NET Core and C# 8
🔗Transcription 00:00 Daniel Marbach Hey, everyone. Can you hear me? Perfect. Did you have a good night's sleep, everyone? That's what I thought, because if anyone had said, "Yes," I would have said,…
https://particular.net/videos/async-in-net-core
14 days ago
0
0
0
Ensure reliable message processing with NServiceBus’s PostgreSQL transport. Choose the transaction mode that fits your needs and keep your data safe.
loading . . .
PostgreSQL transport
An overview of the NServiceBus PostgreSQL transport.
https://docs.particular.net/transports/postgresql/
14 days ago
0
1
0
Just because your handler is idempotent doesn’t mean side effects (like charging a card) are. Concurrency + external APIs can still bite you. Read the latest article by @codeopinion that discusses this problem and some solutions
loading . . .
Your Idempotent Code Is Lying To You - CodeOpinion
Idempotent handlers aren’t automatically safe. Here’s why “idempotent” can still mean duplicate side effects, and what patterns actually work.
https://codeopinion.com/your-idempotent-code-is-lying-to-you/
14 days ago
0
0
0
We have a NuGet package called ParticularTemplates which includes templates you can use with dotnet new, including this template for creating an NServiceBus
#Docker
container host
loading . . .
dotnet new Templates • ParticularTemplates
https://docs.particular.net/nservicebus/dotnet-templates/#nservicebus-docker-container
15 days ago
0
0
0
If you've ever wondered why you shouldn't just use RabbitMQ directly, this interview with Udi Dahan can be quite revealing
loading . . .
WatchMeCode with Derick Bailey & Udi Dahan
🔗Transcription 00:22 Derick Bailey So I'm here today with Udi Dahan, CEO of Particular Software and world renowned speaker and blogger. And far more than that, also the creator of NServiceBus, a…
https://particular.net/videos/watchmecode-with-derick-bailey-udi-dahan
15 days ago
0
0
0
You can't future-proof software architecture — the future just breaks assumptions. What you can do is control where change ripples through your system. Read more in this blog by @codeopinion
loading . . .
You Can’t Future-Proof Software Architecture - CodeOpinion
"Future-Proof Software Architecture" sounds like a good idea, but reality is you can't. What you can do is control the blast radius.
https://codeopinion.com/you-cant-future-proof-software-architecture/
16 days ago
0
1
1
Kafka, RabbitMQ & SQS all move messages — but cost, scaling behavior & real production surprises matter more than on-paper benchmarks. Lessons learnt the hard way discussed here..
loading . . .
Kafka vs RabbitMQ vs AWS SQS — I Lost $30K Choosing Wrong
The message queue looked perfect on paper. Three months later, our AWS bill made my stomach drop.
https://medium.com/@speedcraft21/kafka-vs-rabbitmq-vs-aws-sqs-i-lost-30k-choosing-wrong-3c5d9980efc9
17 days ago
0
0
0
Your system doesn't have to be 100%
#serverless
. Check out an example of how @AzureFunctions can be used to perform a cleanup activity on an NServiceBus system using Azure Blob Storage to store blobs with the Claim Check pattern
loading . . .
Azure Blob Storage Data Bus Cleanup with Azure Functions • Azure Blob Storage Databus Samples
Using an Azure Function instead of the built in blob cleanup capabilities.
https://docs.particular.net/samples/databus/blob-storage-databus-cleanup-function/
17 days ago
0
1
0
"Distributed systems do not fail because you missed a feature. They fail because responsibility is unclear. Two nodes act, both think they are right, and your data becomes a debate.…
18 days ago
1
0
0
Watch this video for a deep dive into Async in .NET with @danielmarbach. Even if you think you know async inside and out…you probably don't
loading . . .
Cliff diving into async in .NET Core and C# 8
🔗Transcription 00:00 Daniel Marbach Hey, everyone. Can you hear me? Perfect. Did you have a good night's sleep, everyone? That's what I thought, because if anyone had said, "Yes," I would have said,…
https://particular.net/videos/async-in-net-core
18 days ago
0
1
0
"What is missing from this process is an understanding of why tests work in the first place. Tests work best when you have seen them fail."
loading . . .
AI-generated tests as ceremony
On epistemological soundness of using LLMs to generate automated tests.
https://blog.ploeh.dk/2026/01/26/ai-generated-tests-as-ceremony/
18 days ago
0
0
0
If you're updating to .NET 10 and using Azure Storage Queues, you'll need this patch to deal with a build error due to a breaking change Microsoft introduced around the AsyncEnumerable…
19 days ago
1
1
0
Does debugging failed messages feel like guesswork? A focused retry workflow makes context clear and recovery safer. See how to handle failed messages in the Particular Service Platform
loading . . .
Retrying failed messages • ServicePulse
Describes the concept and lifecycle of retrying messages in ServicePulse.
https://docs.particular.net/servicepulse/intro-failed-message-retries
19 days ago
0
0
0
Did you know you can completely replace Windows File Explorer?
loading . . .
The Windows File Explorer replacement, File Pilot, is awesome
In this post I describe my experience with the Windows File Explorer replacement, File Pilot. It's blazingly fast, feature rich, and has hotkeys everywhere
https://andrewlock.net/windows-explorer-replacement-filepilot-is-awesome/
19 days ago
0
0
0
We have a NuGet package called ParticularTemplates which includes templates you can use with dotnet new, including this template for creating an NServiceBus
#Docker
container host
loading . . .
dotnet new Templates • ParticularTemplates
https://docs.particular.net/nservicebus/dotnet-templates/#nservicebus-docker-container
20 days ago
0
0
0
#RabbitMQ
has clients for just about any language, and
#NServiceBus
can process messages from all of them
loading . . .
RabbitMQ transport native integration sample • RabbitMQ Transport Samples
Consuming messages published by non-NServiceBus endpoints.
https://docs.particular.net/samples/rabbitmq/native-integration/
20 days ago
0
0
0
Load more
feeds!
log in