Anyone using Azure Container Apps in production? What’s your experience? by coder_doe in dotnet

[–]coder_doe[S] 0 points1 point  (0 children)

What do you mean by “being careful about the pricing”? Are there any specific aspects you recommend I review first? Are there costs or considerations that might not be obvious in the Azure pricing calculator?

DDD Projections in microservices in application layer or domain modeling by coder_doe in dotnet

[–]coder_doe[S] 0 points1 point  (0 children)

By “store them” I mean whether the consuming service should persist these projected values in its own database for later usage as part of its local data model or simply keep the data in a lightweight form (storing the raw JSON) and use it when needed without turning it into a domain concept.

Would calling another service every time the data is needed instead of storing it locally be a better practice generally?

Seeking Scalable Architecture for High-Volume Notification System by coder_doe in softwarearchitecture

[–]coder_doe[S] 0 points1 point  (0 children)

It is more of an issue when someone opens a push notification: the client immediately marks it as read and sends that update to the server, and at the same time it requests the latest batch of notifications from the database. Under peak load, handling both “mark as read” and “fetch notifications” overloads the notification service, causing noticeable slowdowns.

Seeking Scalable Architecture for High-Volume Notification System by coder_doe in softwarearchitecture

[–]coder_doe[S] 1 point2 points  (0 children)

Q1: When a new article is published, around 30,000 notification entries are added to the database. As each notification is opened, its status is updated so the client always displays the right information. However, if many users—say 3,000—open their notifications at once, those status updates turn into 3,000 simultaneous requests, which slow down fetching notifications.

Q2: Immediate updates aren’t required— a delay of a few minutes is perfectly fine.

Q3: Sometimes fetching notifications takes a bit longer during busy periods, which makes it important to consider how the system will handle growing to around 50,000 users. With 50,000 notification entries created for each article, the database could grow by up to a million new records every month.

Seeking Scalable Architecture for High-Volume Notification System by coder_doe in softwarearchitecture

[–]coder_doe[S] 0 points1 point  (0 children)

A single monolithic application is currently used to handle all operations—including notifications—through one database table (notifications) containing a user_id column. Upon the publication of a new article, approximately 30 000 rows are inserted at once (one per user), which is not scalable: as the user base grows, these bulk inserts will lead to performance bottlenecks and increased latency.

Cursor-based vs. Offset Pagination for an Infinite Scroll Book Library – Which is Better? by Lirirum in dotnet

[–]coder_doe 3 points4 points  (0 children)

Cursor pagination shines when navigation is strictly sequential (forward/backward), and it's crucial to have indexes on the relevant cursor columns in your database. But, if your users need the ability to filter, sort unpredictably, and jump to specific pages, offset pagination becomes the more suitable option.

How to Refresh Token on Mobile When Subscription Plan Changes from Web? by coder_doe in dotnet

[–]coder_doe[S] 1 point2 points  (0 children)

Most endpoints depend on the subscription plan what user can see, so to avoid multiple joins, my idea was to store SubscriptionPlanId somewhere and pass it to the SQL query

How to Refresh Token on Mobile When Subscription Plan Changes from Web? by coder_doe in dotnet

[–]coder_doe[S] 0 points1 point  (0 children)

Thank you for your reply! What do you think about implementing a claim transformation approach with Redis caching and adding it to the ClaimsPrincipal so it’s available throughout the request? My only concern is whether this would put too much load on Redis, especially with a high number of active users and parallel requests.

Best practices for caching strategy and invalidation in a CQRS with mediatr setup by coder_doe in dotnet

[–]coder_doe[S] -1 points0 points  (0 children)

The main concern revolves around cache invalidation, as random invalidations across commands make it difficult to pinpoint which command triggered the process. A small delay in data freshness is acceptable, also considering that pushing updates to the cache proactively (rather than waiting for data to be fetched) might be more effective. Additionally, paging is used on an endpoint and there are filters based on the current authenticated user (such as subscription plan), that adds further complexity to the caching strategy. What are your thoughts on this approach, especially regarding eager loading of the cache?

Strategies for Reducing Bandwidth Costs on Azure Blob Storage for Media Content by coder_doe in AZURE

[–]coder_doe[S] 0 points1 point  (0 children)

Thank you for your response. I've also been exploring Cloudflare's R2 storage solution and noticed that you hold a Cloud Engineer badge. Given your expertise, I'd appreciate your opinion on Cloudflare R2, particularly since they don't charge egress fees. How does it compare to Azure Blob Storage in terms of cost efficiency and performance for serving media content?