Clean Architecture with .NET 6

Updating our Clean Architecture template for .NET 6 involves enforcing stricter boundaries using `ImplicitUsings`. Project References The Core layer (`Domain`) should have ZERO dependencies. In .NET 6, we can enforce this by stripping out accidental imports. This compiler-level enforcement prevents junior developers from injecting HTTP clients into Domain Entities.

Read more →
Posted in Uncategorized

Azure Logic Apps: Standard vs Consumption

Choosing between Logic Apps Consumption (Serverless) and Standard (Single Tenant) is a critical architectural decision. Feature Consumption Standard Billing Per Execution Hosting Plan (Fixed) Throughput Throttled limits Your reserved hardware Networking ISE required for VNET VNET Integration built-in State Always Stateful Stateless option available If you need >100 req/sec, use Standard. If you run once […]

Read more →
Posted in Uncategorized

C# 10 Record Structs: Optimization

C# 9 Records were reference types (classes). C# 10 introduces `record struct`, bringing immutability features to value types, eliminating heap allocations for small DTOs. Syntax Performance Benefit Since it’s a struct, `Point` lives on the stack. No GC pressure for creating thousands of them in a loop. Key Takeaways Use `readonly record struct` for small, […]

Read more →

Docker Init Process: The Zombie Reaper

If your container spawns child processes (e.g., shell scripts), those children can become zombies when terminated. Docker defaults to PID 1 being your app, but PID 1 in Linux has special responsibilities—reaping orphaned children. Your app probably doesn’t do that. The Solution: `tini` Or simpler with Docker’s built-in: Key Takeaways Zombies consume PIDs. Too many […]

Read more →

Svelte vs React: A 2021 Perspective

React involves shipping a runtime (Virtual DOM) to the browser. Svelte is a compiler that generates vanilla JS. The difference is profound. Reactivity Models React (Pull) React re-renders the component tree when state changes. You must use `useMemo` and `useCallback` to prevent unnecessary work. Svelte (Push) Svelte uses topological ordering during compilation. Assignments *are* the […]

Read more →
Posted in Uncategorized

Azure Service Bus: Messaging Patterns

Service Bus is Azure’s fully managed enterprise message broker. It supports Queues (point-to-point) and Topics/Subscriptions (pub/sub). Choosing the right pattern prevents architectural headaches. Queues vs Topics Dead-Letter Queue Messages that fail processing N times go to a special DLQ for inspection and replay. Key Takeaways Use **Sessions** for ordered processing (FIFO for a specific session […]

Read more →