Thank you @abisoyeOladayo for writing this helpful article.
Service-to-Service Communication: When to Use REST, gRPC, and Event-Driven Messaging
https://t.co/ZhH3yFjkDY
SignalR works great with one server.
Then you add a second instance behind a load balancer, and notifications start disappearing.
The code can be perfectly fine.
The problem is the connection map.
Each SignalR server only knows about the clients connected to that specific process.
So if an API request lands on Server 1, but the user is connected to Server 2, Server 1 has no idea that connection exists.
The message goes nowhere.
This is where a Redis backplane helps.
Every server publishes outgoing SignalR messages to Redis.
Every server subscribes to the same channel.
When a message comes in, each instance checks whether it has the target connection locally.
From your application code, `Clients.User(...)` still works the same.
But now it works across instances.
The setup is almost too simple:
builder. Services.AddSignalR().AddStackExchangeRedis(connectionString);
But there are two important things to remember:
1. You still need sticky sessions
2. SignalR does not buffer messages if Redis is down
The Redis backplane solves routing.
It does not make SignalR durable.
For order updates, live dashboards, and most real-time UI notifications, that’s usually fine.
For critical events, you need a reconciliation strategy or a durable queue alongside it.
I wrote a full breakdown of how SignalR scale-out works, how Redis fixes the routing problem, and what can still go wrong: https://t.co/MSVWlPMGJp
Just gave a talk on SIMD-accelerated data processing in C++!
We push JSON parsing to ~14 GB/s single-threaded on a macBook, added C++26 compile-time reflection for zero-boilerplate (de)serialization, and brought blazing fast UTF-8/16 + Base64 to browsers (16+ GB/s).
Hardware keeps getting wider & faster, our code has to keep up.
Full talk https://t.co/GRooXHZF08
Joint work with lots of people such as @geofflangdale, @GeimanThiesen, @FUZxxl and @yagiznizipli
think OSI
everyone memorizes Please Do Not Throw Sausage Pizza Away for interviews, then immediately forgets it after getting the offer
honestly, that's a mistake
a lot of weird prod networking bugs are just which layer am I actually debugging? problems
layers 5 and 6 are mostly academic in day-to-day infra work. TCP/IP kind of folded that stuff into the application layer, and forcing juniors to reason about presentation/session usually creates more confusion than clarity
what matters more:
- Connection refused? Probably L4
- Connection reset halfway through? Also L4-ish, but now you're asking who killed the socket. App? LB? firewall? idle timeout?
- TLS cert error? Don't call it layer 6 in real life. Just say TLS
- DNS resolves but curl hangs? Now you're checking routing, firewall, IPv6, MTU/PMTUD, proxy config, etc
the useful skill is not reciting the model
it's debugging top-down:
- Can the app resolve the name?
- Can it open a socket?
- Does the packet leave the box?
- Does it get a SYN-ACK back?
- Does ARP/NDP work?
- Is some firewall silently dropping it?
most of the time you stop around L3/L4 and the answer is still: something in the network path said no
also, tcpdump is not scary
it's basically ls for packets. Once you get comfortable with it, networking bugs become way less mystical
btw, good drill list for interviews / real pager pain:
https://t.co/xMcUSW9O8W
also, I'm available for b2b remote work from Armenia. Let's chat
#linux #devops #sre #networking #sysadmin #tcpip #homelab
Discover Awesome .NET, a handpicked list of 450+ useful open‑source libraries and tools for .NET developers. It’s easy to browse, always up to date, and a great resource for the community.
Check it out: https://t.co/3iT9J99XR4 #dotnet
𝗜 𝗿𝗮𝗻𝗸𝗲𝗱 𝟰𝟬+ 𝗡𝘂𝗚𝗲𝘁 𝗽𝗮𝗰𝗸𝗮𝗴𝗲𝘀 𝗶𝗻 .𝗡𝗘𝗧.
𝗦𝗼𝗺𝗲 𝗱𝗲𝘃𝘀 𝘄𝗶𝗹𝗹 𝗵𝗮𝘁𝗲 𝗺𝗲 𝗳𝗼𝗿 𝘁𝗵𝗶𝘀.
After 12+ years of building production .NET apps, here's my honest NuGet package tier list:
🏆 𝗦-𝗧𝗶𝗲𝗿: 𝗠𝘂𝘀𝘁-𝗛𝗮𝘃𝗲 𝗣𝗮𝗰𝗸𝗮𝗴𝗲𝘀
These belong in almost every .NET project.
No debate.
→ Entity Framework Core: the ORM that does it all
→ Dapper: when you need raw SQL speed
→ Serilog: structured logging done right
→ FluentValidation: clean, readable validation rules
→ xUnit: the standard for .NET testing
→ Polly: resilience and retry policies made easy
→ StackExchange.Redis: battle-tested Redis client
→ SignalR: real-time communication, built-in
→ Dapr: powerful distributed app building blocks
→ Scalar: modern, beautiful API documentation
�� 𝗔-𝗧𝗶𝗲𝗿: 𝗘𝘅𝗰𝗲𝗹𝗹𝗲𝗻𝘁 𝗣𝗮𝗰𝗸𝗮𝗴𝗲𝘀
Solid choices that solve real problems well.
→ MassTransit / Wolverine: messaging done properly
→ Refit: typed HTTP clients with zero boilerplate
→ HotChocolate GraphQL: best GraphQL library for .NET
→ OpenTelemetry .NET: observability you actually need
→ TestContainers: integration tests with real databases
→ Moq: mocking that just works
→ Bogus: realistic fake data in seconds
→ Quartz .NET / TickerQ: job scheduling that scales
→ NBomber: load testing for your APIs
→ MailKit: the right way to send emails
→ Newtonsoft(.)Json: still relevant, still reliable
→ Swagger / Swashbuckle: classic API documentation
🔧 𝗕-𝗧𝗶𝗲𝗿: 𝗚𝗼𝗼𝗱, 𝗕𝘂𝘁 𝗦𝗶𝘁𝘂𝗮𝘁𝗶𝗼𝗻𝗮𝗹
Useful when you need them. Not for every project.
→ MediatR: great for CQRS, but adds indirection you may not need
→ Hangfire: background jobs with a dashboard UI
→ Mapperly: fast source-generated mapping
→ Scrutor: decorator pattern made easy in DI
→ BenchmarkDotNet: micro-benchmarking your code properly
→ Humanizer: string and date formatting for humans
→ ImageSharp: image processing without native dependencies
→ NetArchTest: enforce architecture rules inside tests
→ CsvHelper, NodaTime, Carter, Respawn, WireMock(.)Net
🟡 𝗖-𝗧𝗶𝗲𝗿: 𝗪𝗼𝗿𝗸𝘀, 𝗕𝘂𝘁 𝗕𝗲𝘁𝘁𝗲𝗿 𝗔𝗹𝘁𝗲𝗿𝗻𝗮𝘁𝗶𝘃𝗲𝘀 𝗘𝘅𝗶𝘀𝘁
They do the job. I just reach for something else first.
→ NLog: Serilog does it better
→ Rebus: MassTransit and Wolverine are stronger choices
→ Coravel: fine for tiny apps, limited as you grow
→ CliWrap, Verify, UnitsNet: niche use cases
❌ 𝗗-𝗧𝗶𝗲𝗿: 𝗔𝘃𝗼𝗶𝗱 𝗶𝗻 𝗡𝗲𝘄 𝗣𝗿𝗼𝗷𝗲𝗰𝘁𝘀
→ AutoMapper, Mapster: manual mapping is cleaner, faster, and easier to debug
→ FluentAssertions: great library, but v7 is paid
This is just my opinion based on my experience.
Your project context always matters.
Don't install packages to feel productive.
Install them because they solve a real problem.
Which package on this list do you disagree with the most?
——
♻️ Repost to help others choose the right NuGet packages
➕ Follow me ( @AntonMartyniuk ) to improve your .NET and Architecture Skills
📌 Save this post for future reference!
Mastering Socket Programming In C
Whether you’re a beginner or looking to refresh your knowledge, this article will provide you with a solid foundation in socket programming.
1. Topological quantum computing is here! This thread explains how Microsoft’s Majorana 1 works and what it will mean for a fault tolerant future. I was invited to Azure Quantum Labs and got to hold this amazing new chip!
A couple reflections on the quantum computing breakthrough we just announced...
Most of us grew up learning there are three main types of matter that matter: solid, liquid, and gas. Today, that changed.
After a nearly 20 year pursuit, we’ve created an entirely new state of matter, unlocked by a new class of materials, topoconductors, that enable a fundamental leap in computing.
It powers Majorana 1, the first quantum processing unit built on a topological core.
We believe this breakthrough will allow us to create a truly meaningful quantum computer not in decades, as some have predicted, but in years.
The qubits created with topoconductors are faster, more reliable, and smaller.
They are 1/100th of a millimeter, meaning we now have a clear path to a million-qubit processor.
Imagine a chip that can fit in the palm of your hand yet is capable of solving problems that even all the computers on Earth today combined could not!
Sometimes researchers have to work on things for decades to make progress possible.
It takes patience and persistence to have big impact in the world.
And I am glad we get the opportunity to do just that at Microsoft.
This is our focus: When productivity rises, economies grow faster, benefiting every sector and every corner of the globe.
It’s not about hyping tech; it’s about building technology that truly serves the world.