{"repo":"64J0/fsharp-monitoring","free":true,"listed":false,"github":"https://github.com/64J0/fsharp-monitoring","clone":"git clone https://github.com/64J0/fsharp-monitoring.git","description":"Sample API written in F#, built with Giraffe and working with Prometheus and Grafana for monitoring using Docker containers","language":"F#","stars":10,"topics":["docker-compose","fsharp","grafana","monitoring","prometheus","docker","metrics","clean-architecture","load-testing","postgresql"],"license":"Apache-2.0","category":"analytics","readme_excerpt":"Monitoring F# API An F# REST API demonstrating production-grade monitoring with Prometheus, Grafana, and AlertManager. Built with ASP.NET + Giraffe following clean architecture principles. Related project: 64J0/dotnet-builtin-metrics --- Clean Architecture Clean architecture organises code into concentric layers where dependencies only point inward — outer layers depend on inner ones, never the reverse. This is enforced through ports (interfaces) defined by inner layers and implemented by outer ones. Layers Layer Project Responsibility --- --- --- Domain fsharp-domain Entities, value objects, and domain errors. Zero external dependencies. Application fsharp-application Use-case orchestration and port interfaces. Depends only on Domain. Infrastructure fsharp-infrastructure Database access via SqlHydra-generated types and repository implementations. Presentation fsharp-api HTTP controllers, routing, Prometheus middleware, and DI composition root. Advantages Testability — domain and application logic can be unit-tested without a database or HTTP stack. Framework independence — business rules do not depend on Giraffe, ASP.NET, or any ORM. Explicit boundaries — ports make all cross-layer dependencies visible and substitutable. Separation of concerns — each layer has a single, well-defined responsibility. Disadvantages More boilerplate — mapping between HTTP DTOs, domain models, and database records adds ceremony. Indirection — tracing a request across many layers can be harder for","default_branch":null,"files":null,"tree":[],"storefront":"/r/64J0","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/64J0/fsharp-monitoring/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}