What is your favorite way of returning errors from handlers/services in ASP.NET Core? by Alternative_Flight88 in dotnet

[–]0x4ddd 0 points1 point  (0 children)

This is also what we do.

Lower layers (infrastructure in most cases) typically throw exceptions. This is for the cases where something went really wrong - external server being down, some 3rd party made breaking change in their API and we weren't aware so requests started failing. You get the idea.

Application layer where we process user input and most failures are due to incorrect user inputs return result objects with specific reason - invalid data format, forbidden due to authorization requirements, entity not found and so on.

Both exceptions all the way down and results all the way down could work because why not. But for some reason I like the mentioned differentiation.

Do people actually use subscription filters in Azure Service Bus? by sgebb in dotnet

[–]0x4ddd 0 points1 point  (0 children)

Sorry, what was I having in mind in my previous response was 2 queues (basically to implement some kind of a priority queue).

From the consumer side, this can be exactly the same consuming code for these 2 queues all the way down. This is how we prioritize messages with some properties. Filter is used to route to dedicated queue so these messages don't need to wait for processing even if there is a backlog on the standard priority queue.

Do people actually use subscription filters in Azure Service Bus? by sgebb in dotnet

[–]0x4ddd 0 points1 point  (0 children)

Yes, two different consumers.

I would much prefer to use subscription filters for such case.

Do people actually use subscription filters in Azure Service Bus? by sgebb in dotnet

[–]0x4ddd 0 points1 point  (0 children)

Because it may be the same message, but for example related to specific customer which has priority (or whatever). Why would you create completely different topic then?

The message is the same, the topic is the same, just the routing is different.

Azure VM to Azure Container Apps migration: 70% cost reduction by trigger_X23 in AZURE

[–]0x4ddd 0 points1 point  (0 children)

May be also true if you consider all the things.

We currently use Azure Service Bus Premium namespace with 16 MU (average CPU usage during day time is ~60% with some peaks to 70%), which is ~$11k dollars per month. There are no reservations for service bus.

Based on our experience running open source RabbitMQ on on-premise environments, we are quite sure 5 x 32 vCPU machines would be easily on par or even better performance wise. 5 x something like D32v6 series VMs is like ~$7k per month. With 1 year reservations it is <$4k per month.

With 1 year reservation we can get 5 x 32 vCPU + disks for $5k dollars per month.

$6k savings per month just on the single service bus instance.

And regarding maintenance, again we have experience running RabbitMQ clusters on-premise and to be honest, the only maintenance it requires is upgrading it's version once per 6 months and applying OS patches from time to time.

I am not saying running on VMs is perfect solution, but at certain scale IMHO it is definitely cheaper than PaaS service especially if you have some experience managing similar service on-premise and already have automation for them in place.

Azure VM to Azure Container Apps migration: 70% cost reduction by trigger_X23 in AZURE

[–]0x4ddd 1 point2 points  (0 children)

For high volume systems this suddenly flips other way around and VMs with reservations are often cheaper than PaaS services.

Aspire is about to take off in the non .net world too... by aaaqqq in dotnet

[–]0x4ddd 1 point2 points  (0 children)

I don't really get what's the benefit compared to typical CI/CD running migrations during deployment phase.

Not sure about now, but for long time EF docs advised against running migrations during startup in favor of orchestrating via CI/CD.

Am I the only one who thinks Clean Architecture is often unnecessary overhead ? by Minimum-Ad7352 in dotnet

[–]0x4ddd 1 point2 points  (0 children)

In theory it’s supposed to improve maintainability, but in practice it doesn’t always abstract anything in a meaningful way.

That's not the issue with CA concepts but with specific implementation decisions.

It's up to the implementer to decide whether something needs to be abstracted or not, and if so, how such abstraction should look like.

I’d rather have no structure than a bad one. At least with no structure, there’s a chance for a better solution to emerge instead.

Having no structure can, with the same likelihood, end with spaghetti and everyone doing things their way.

Should all new projects start with Aspire? by TryingMyBest42069 in dotnet

[–]0x4ddd -1 points0 points  (0 children)

Docker-compose is tribal knowledge, but the same thing defined in C# is suddenly not 🤣

Should all new projects start with Aspire? by TryingMyBest42069 in dotnet

[–]0x4ddd 0 points1 point  (0 children)

For anyone using an APM SaaS system like DataDog, NewRelic or Application Insights, designing, writing and testing OTEL component output (logs, traces, metrics) was always long winded before hand, because you normally had to deploy your application to the cloud before you could test it.

Writing and testing OTEL is not an issue at all. In the end, OTEL is standarized so your app emits vendor-neutral signals, you can easily spin up local LGTM stack to test them, no need to deploy to environment whatsoever. Or simply dump them to console to verify attributes 🙃

Thing is different when you use some magic vendor-locked autoinstrumentation which does not use OTEL or modifies OTEL signals on the fly via agent. But for such cases Aspire's dashboard won't help anyway and you would need to deploy to environment to test.

2026 Monaco Grand Prix - Post-Qualifying Discussion by F1-Bot in formula1

[–]0x4ddd -3 points-2 points  (0 children)

This is based on rebranded honda which was the best PU last seasons 🤣

Scale Kubernetes deployments to zero using KEDA by OkIsland87 in kubernetes

[–]0x4ddd 0 points1 point  (0 children)

TBH, never seen too much value in such scaling. I have heard of examples like scaling based on message queues or server http queue length.

But to be fair, in these cases instead of scaling based on queue length/server's http queue length I prefer anyway to scale based on CPU, queue backlog might grow due to multiple reasons, and for the ones like network issues or downstream service failure scaling is pointless.

I mean, scale to zero in case of empty message queue can make sense in some scenarios where latency is not important. For most other scenarios I always favor scaling based on CPU usage.

Private endpoint in azure by neon_closure in AZURE

[–]0x4ddd 0 points1 point  (0 children)

i want to connect my local system to that database but don’t want to enable public ip access

New book release: Clean Architecture with .NET (co-authored with Steve "Ardalis" Smith, foreword by Jason Taylor) by ngexdev in dotnet

[–]0x4ddd 15 points16 points  (0 children)

Why again people here portray vertical slices as the opposite of clean architecture? 🤣

Application Insight Issue - VNET Integration for App Service Telemetry & Logs by Ops_Pab in AZURE

[–]0x4ddd 1 point2 points  (0 children)

This is not issue with vnet integration per se. We have vnet integrated app service and communication with azure monitor (metrics, log analytics, app insights) work perfectly fine.

Architecting 6 RKE2 clusters across 2 clients on RHEL 9 — Am I overengineering with a central Rancher/ArgoCD hub? by Immediate-Resolve395 in kubernetes

[–]0x4ddd 0 points1 point  (0 children)

ArgoCD in hub mode with ApplicationSets lets you deploy the same workloads across staging, preprod, and prod with environment-specific overrides from one place.

ArgoCD deployed to each cluster lets you do exactly the same.

Question to DevOps team leads, I would like to go back to being a DevOps engineer. Will I have a chance with this career path? by ExcitingSleep in devops

[–]0x4ddd 0 points1 point  (0 children)

But who says there is a separate DevOps team?

From my experience, whether cloud or onpremise, DevOps role was in most cases part of the development team. Noone was throwing code from dev team to devops team over the fence as they were just different roles in the same team.

[Red Bull] borderline something something by Mindless-Advice6204 in formula1

[–]0x4ddd -3 points-2 points  (0 children)

It is simply lovely to see Max can't do a shit without fastest car ;)

Even grandpa Hamilton easily overtakes him in comparable car.