home.social

#aspnetcore — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #aspnetcore, aggregated by home.social.

  1. More tuning the of performance path in StyloBot at the moment.

    mostlylucid.net/blog/stylobot-

    (It's the free, open source bot detection engine I'm building)

    This part is about making repeat traffic cheaper to process without turning the cache into a permanent source of wrong answers.

    That means boring but important mechanisms:

    EWMA updates

    hysteresis thresholds

    verdict caching

    variance watchdogs

    bounded memory

    refresh sampling

    I'm not an ML guy, but a lot of this maps neatly onto ML and control theory ideas once you start writing it down.

    The useful pattern is simple enough:

    learn from traffic, make the common path faster, keep enough uncertainty in the system that it can recover when the world changes.

    The next post in the StyloBot release series is a deep dive into that mechanism.

    Very much one for the nerds.

    In .NET so...kinda niche...ML / AI ...

    mostlylucid.net/blog/stylobot-

    #dotnet #opensource #aspnetcore #performance #systemsdesign

  2. More tuning the of performance path in StyloBot at the moment.

    mostlylucid.net/blog/stylobot-

    (It's the free, open source bot detection engine I'm building)

    This part is about making repeat traffic cheaper to process without turning the cache into a permanent source of wrong answers.

    That means boring but important mechanisms:

    EWMA updates

    hysteresis thresholds

    verdict caching

    variance watchdogs

    bounded memory

    refresh sampling

    I'm not an ML guy, but a lot of this maps neatly onto ML and control theory ideas once you start writing it down.

    The useful pattern is simple enough:

    learn from traffic, make the common path faster, keep enough uncertainty in the system that it can recover when the world changes.

    The next post in the StyloBot release series is a deep dive into that mechanism.

    Very much one for the nerds.

    In .NET so...kinda niche...ML / AI ...

    mostlylucid.net/blog/stylobot-

    #dotnet #opensource #aspnetcore #performance #systemsdesign

  3. More tuning the of performance path in StyloBot at the moment.

    mostlylucid.net/blog/stylobot-

    (It's the free, open source bot detection engine I'm building)

    This part is about making repeat traffic cheaper to process without turning the cache into a permanent source of wrong answers.

    That means boring but important mechanisms:

    EWMA updates

    hysteresis thresholds

    verdict caching

    variance watchdogs

    bounded memory

    refresh sampling

    I'm not an ML guy, but a lot of this maps neatly onto ML and control theory ideas once you start writing it down.

    The useful pattern is simple enough:

    learn from traffic, make the common path faster, keep enough uncertainty in the system that it can recover when the world changes.

    The next post in the StyloBot release series is a deep dive into that mechanism.

    Very much one for the nerds.

    In .NET so...kinda niche...ML / AI ...

    mostlylucid.net/blog/stylobot-

    #dotnet #opensource #aspnetcore #performance #systemsdesign

  4. More tuning the of performance path in StyloBot at the moment.

    mostlylucid.net/blog/stylobot-

    (It's the free, open source bot detection engine I'm building)

    This part is about making repeat traffic cheaper to process without turning the cache into a permanent source of wrong answers.

    That means boring but important mechanisms:

    EWMA updates

    hysteresis thresholds

    verdict caching

    variance watchdogs

    bounded memory

    refresh sampling

    I'm not an ML guy, but a lot of this maps neatly onto ML and control theory ideas once you start writing it down.

    The useful pattern is simple enough:

    learn from traffic, make the common path faster, keep enough uncertainty in the system that it can recover when the world changes.

    The next post in the StyloBot release series is a deep dive into that mechanism.

    Very much one for the nerds.

    In .NET so...kinda niche...ML / AI ...

    mostlylucid.net/blog/stylobot-

    #dotnet #opensource #aspnetcore #performance #systemsdesign

  5. More tuning the of performance path in StyloBot at the moment.

    mostlylucid.net/blog/stylobot-

    (It's the free, open source bot detection engine I'm building)

    This part is about making repeat traffic cheaper to process without turning the cache into a permanent source of wrong answers.

    That means boring but important mechanisms:

    EWMA updates

    hysteresis thresholds

    verdict caching

    variance watchdogs

    bounded memory

    refresh sampling

    I'm not an ML guy, but a lot of this maps neatly onto ML and control theory ideas once you start writing it down.

    The useful pattern is simple enough:

    learn from traffic, make the common path faster, keep enough uncertainty in the system that it can recover when the world changes.

    The next post in the StyloBot release series is a deep dive into that mechanism.

    Very much one for the nerds.

    In .NET so...kinda niche...ML / AI ...

    mostlylucid.net/blog/stylobot-

  6. Modernizing .NET Part 24! 📊
    Today we’re implementing modern observability with Prometheus and Grafana.
    ✅ OpenTelemetry metrics
    ✅ Runtime health (GC, Threads)
    ✅ Kubernetes-native monitoring
    medium.com/@michael.kopt/moder
    #dotnet #csharp #aspnet #aspnetcore #csharp #prometheus #grafana #monitoring

  7. Modernizing .NET Part 24! 📊
    Today we’re implementing modern observability with Prometheus and Grafana.
    ✅ OpenTelemetry metrics
    ✅ Runtime health (GC, Threads)
    ✅ Kubernetes-native monitoring
    medium.com/@michael.kopt/moder
    #dotnet #csharp #aspnet #aspnetcore #csharp #prometheus #grafana #monitoring

  8. Modernizing .NET Part 24! 📊
    Today we’re implementing modern observability with Prometheus and Grafana.
    ✅ OpenTelemetry metrics
    ✅ Runtime health (GC, Threads)
    ✅ Kubernetes-native monitoring
    medium.com/@michael.kopt/moder
    #dotnet #csharp #aspnet #aspnetcore #csharp #prometheus #grafana #monitoring

  9. Modernizing .NET Part 24! 📊
    Today we’re implementing modern observability with Prometheus and Grafana.
    ✅ OpenTelemetry metrics
    ✅ Runtime health (GC, Threads)
    ✅ Kubernetes-native monitoring
    medium.com/@michael.kopt/moder
    #dotnet #csharp #aspnet #aspnetcore #csharp #prometheus #grafana #monitoring

  10. Modernizing .NET Part 24! 📊
    Today we’re implementing modern observability with Prometheus and Grafana.
    ✅ OpenTelemetry metrics
    ✅ Runtime health (GC, Threads)
    ✅ Kubernetes-native monitoring
    medium.com/@michael.kopt/moder

  11. That while + Task.Delay loop is quietly drifting. This drop swaps in PeriodicTimer to keep background jobs on time and spotlights IdentityServer rate limits, cleaner Minimal APIs, and YARP as a lean gateway. #dotnet #csharp #aspnetcore

    .NET drip - Saturday, May 9, 2...

  12. Part 3 of the StyloBot Release Series is up.

    mostlylucid.net/blog/stylobot-

    This one is less about bots and more about the reality of long-running .NET based systems: everything that learns from traffic eventually accumulates.

    Came from one of my periodic reliability reviews where StyloBot’s vector layer had drifted to 13GB on the .NET Large Object Heap due to the wrong abstraction (in-process HNSW behaving like an unbounded cache).

    The interesting part wasn’t the fix. It was recognising that the architecture itself was wrong for the runtime pattern.

    Covers:

    how I periodically review long-running services

    using dotnet-counters, dotMemory and dotTrace to find growth

    why “just add a cap” is often the wrong answer

    replacing unbounded ANN structures with bounded hot caches + compacted persistence

    taking the vector layer from 13GB LOH to <6MB

    The broader point applies to any system that “remembers”:

    bot detection, fraud scoring, recommendations, anomaly detection, RAG pipelines, adaptive systems.

    Fix the shape, not the symptom.

    #dotnet #aspnetcore #performance #architecture #ai #rag #observability

  13. Part 3 of the StyloBot Release Series is up.

    mostlylucid.net/blog/stylobot-

    This one is less about bots and more about the reality of long-running .NET based systems: everything that learns from traffic eventually accumulates.

    Came from one of my periodic reliability reviews where StyloBot’s vector layer had drifted to 13GB on the .NET Large Object Heap due to the wrong abstraction (in-process HNSW behaving like an unbounded cache).

    The interesting part wasn’t the fix. It was recognising that the architecture itself was wrong for the runtime pattern.

    Covers:

    how I periodically review long-running services

    using dotnet-counters, dotMemory and dotTrace to find growth

    why “just add a cap” is often the wrong answer

    replacing unbounded ANN structures with bounded hot caches + compacted persistence

    taking the vector layer from 13GB LOH to <6MB

    The broader point applies to any system that “remembers”:

    bot detection, fraud scoring, recommendations, anomaly detection, RAG pipelines, adaptive systems.

    Fix the shape, not the symptom.

  14. Part 3 of the StyloBot Release Series is up.

    mostlylucid.net/blog/stylobot-

    This one is less about bots and more about the reality of long-running .NET based systems: everything that learns from traffic eventually accumulates.

    Came from one of my periodic reliability reviews where StyloBot’s vector layer had drifted to 13GB on the .NET Large Object Heap due to the wrong abstraction (in-process HNSW behaving like an unbounded cache).

    The interesting part wasn’t the fix. It was recognising that the architecture itself was wrong for the runtime pattern.

    Covers:

    how I periodically review long-running services

    using dotnet-counters, dotMemory and dotTrace to find growth

    why “just add a cap” is often the wrong answer

    replacing unbounded ANN structures with bounded hot caches + compacted persistence

    taking the vector layer from 13GB LOH to <6MB

    The broader point applies to any system that “remembers”:

    bot detection, fraud scoring, recommendations, anomaly detection, RAG pipelines, adaptive systems.

    Fix the shape, not the symptom.

    #dotnet #aspnetcore #performance #architecture #ai #rag #observability

  15. Part 3 of the StyloBot Release Series is up.

    mostlylucid.net/blog/stylobot-

    This one is less about bots and more about the reality of long-running .NET based systems: everything that learns from traffic eventually accumulates.

    Came from one of my periodic reliability reviews where StyloBot’s vector layer had drifted to 13GB on the .NET Large Object Heap due to the wrong abstraction (in-process HNSW behaving like an unbounded cache).

    The interesting part wasn’t the fix. It was recognising that the architecture itself was wrong for the runtime pattern.

    Covers:

    how I periodically review long-running services

    using dotnet-counters, dotMemory and dotTrace to find growth

    why “just add a cap” is often the wrong answer

    replacing unbounded ANN structures with bounded hot caches + compacted persistence

    taking the vector layer from 13GB LOH to <6MB

    The broader point applies to any system that “remembers”:

    bot detection, fraud scoring, recommendations, anomaly detection, RAG pipelines, adaptive systems.

    Fix the shape, not the symptom.

    #dotnet #aspnetcore #performance #architecture #ai #rag #observability

  16. Part 3 of the StyloBot Release Series is up.

    mostlylucid.net/blog/stylobot-

    This one is less about bots and more about the reality of long-running .NET based systems: everything that learns from traffic eventually accumulates.

    Came from one of my periodic reliability reviews where StyloBot’s vector layer had drifted to 13GB on the .NET Large Object Heap due to the wrong abstraction (in-process HNSW behaving like an unbounded cache).

    The interesting part wasn’t the fix. It was recognising that the architecture itself was wrong for the runtime pattern.

    Covers:

    how I periodically review long-running services

    using dotnet-counters, dotMemory and dotTrace to find growth

    why “just add a cap” is often the wrong answer

    replacing unbounded ANN structures with bounded hot caches + compacted persistence

    taking the vector layer from 13GB LOH to <6MB

    The broader point applies to any system that “remembers”:

    bot detection, fraud scoring, recommendations, anomaly detection, RAG pipelines, adaptive systems.

    Fix the shape, not the symptom.

    #dotnet #aspnetcore #performance #architecture #ai #rag #observability

  17. Modernizing .NET Part 23! 🪵

    Today we’re fixing log4net context loss in async environments.

    ✅ Move to LogicalThreadContext
    ✅ Zero-loss diagnostic trail
    ✅ Async-safe logging

    medium.com/@michael.kopt/moder
    #dotnet #csharp #aspnet #aspnetcore #log4net #programming

  18. Modernizing .NET Part 23! 🪵

    Today we’re fixing log4net context loss in async environments.

    ✅ Move to LogicalThreadContext
    ✅ Zero-loss diagnostic trail
    ✅ Async-safe logging

    medium.com/@michael.kopt/moder
    #dotnet #csharp #aspnet #aspnetcore #log4net #programming

  19. Modernizing .NET Part 23! 🪵

    Today we’re fixing log4net context loss in async environments.

    ✅ Move to LogicalThreadContext
    ✅ Zero-loss diagnostic trail
    ✅ Async-safe logging

    medium.com/@michael.kopt/moder
    #dotnet #csharp #aspnet #aspnetcore #log4net #programming