{"id":28955871,"url":"https://github.com/adrianfreemantle/bugle-call","last_synced_at":"2026-04-27T18:05:31.933Z","repository":{"id":298883388,"uuid":"1001385491","full_name":"AdrianFreemantle/bugle-call","owner":"AdrianFreemantle","description":"Bugle Call is a full-stack incident intelligence platform built for testing architecture patterns, GitOps delivery, and platform resilience in real-world conditions.","archived":false,"fork":false,"pushed_at":"2025-06-20T16:45:04.000Z","size":512,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T17:42:58.429Z","etag":null,"topics":["cloud-native","distributed-systems","event-driven-architecture","gitops","kubernetes","microservices-architecture","observability","terraform"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdrianFreemantle.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-13T09:37:47.000Z","updated_at":"2025-06-20T16:45:09.000Z","dependencies_parsed_at":"2025-06-13T12:28:59.593Z","dependency_job_id":"03a7c7d0-929e-41f0-a1b9-ffe1438c6c85","html_url":"https://github.com/AdrianFreemantle/bugle-call","commit_stats":null,"previous_names":["adrianfreemantle/bugle-call"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AdrianFreemantle/bugle-call","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianFreemantle%2Fbugle-call","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianFreemantle%2Fbugle-call/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianFreemantle%2Fbugle-call/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianFreemantle%2Fbugle-call/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdrianFreemantle","download_url":"https://codeload.github.com/AdrianFreemantle/bugle-call/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdrianFreemantle%2Fbugle-call/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261548756,"owners_count":23175502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-native","distributed-systems","event-driven-architecture","gitops","kubernetes","microservices-architecture","observability","terraform"],"created_at":"2025-06-23T20:11:56.304Z","updated_at":"2026-04-27T18:05:31.900Z","avatar_url":"https://github.com/AdrianFreemantle.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bugle Call\n\n**Bugle Call is a full-stack incident intelligence platform built for testing architecture patterns, GitOps delivery, and platform resilience in real-world conditions.**\n\n## Purpose\n\nThis project is designed to simulate the realities of cloud-native architecture in a controlled, measurable environment. It focuses on the kind of work architects often design but rarely get to implement fully themselves: end-to-end system behavior under load, cost-awareness, secure access control, observability, and practical resilience.\n\nThe goal is to deepen architectural skill through hands-on implementation, using modern tools and patterns across the full software lifecycle.\n\n## What We're Building\n\nBugle Call is a distributed system that accepts operational incidents, enriches and classifies them using machine learning, and provides secure visibility into trends, anomalies, and system behavior. It integrates intelligent processing, real-time observability, and infrastructure automation.\n\nIt includes AI capabilities for incident categorization and cost anomaly detection, using lightweight local models that enhance system insight without overcomplicating the architecture.\n\n## Core Components\n[View the full architecture](docs/architecture.md)\n\n| Component                    | Description                                                             |\n|------------------------------|-------------------------------------------------------------------------|\n| Incident API (.NET)          | Accepts HTTP POSTs, validates incidents, emits events                   |\n| Async Processor (Go)         | Processes messages, triggers enrichment workflows                       |\n| Enrichment Service (Python)  | Tags, classifies, and prioritizes incidents using lightweight ML        |\n| Cost Anomaly Detector        | Analyzes metrics from Prometheus and Kubecost to flag unusual behavior  |\n| PostgreSQL                   | Central structured incident storage                                     |\n| Admin UI (React)             | Internal dashboard for browsing, filtering, and analyzing incidents     |\n| Auth \u0026 Session Service (Node)| Handles user sessions and JWT-based access control                      |\n| Load Generator               | Simulates realistic traffic and incident volumes                        |\n| Monitoring Stack             | Prometheus, Grafana, Alertmanager                                       |\n| GitOps Pipeline              | GitHub Actions and ArgoCD for delivery and promotion                    |\n| Infrastructure               | Managed with Terraform for kind, AKS, and EKS environments              |\n| GraphQL API (Node)           | Unified query layer for the UI                                          |\n| Raw Payload Store (MongoDB)  | Stores raw incident JSON                                                | \n\n## AI Integrations\n\n| Feature                    | Description                                                               |\n|----------------------------|---------------------------------------------------------------------------|\n| Incident Categorization     | Uses NLP to assign `category` and `severity` fields                       |\n| Cost Anomaly Detection      | Detects unusual usage or cost patterns from Prometheus and Kubecost data  |\n\nThese integrations are fully self-hosted, resource-light, and designed to highlight practical AI enrichment within a platform context.\n\n## Deployment Targets\n\n| Environment        | Use Case                                                          |\n|--------------------|--------------------------------------------------------------------|\n| Local (`kind`, `k3d`) | Developer testing, pipeline validation                        |\n| AKS (Azure)        | Enterprise IAM, regional cost modeling                             |\n| EKS (AWS)          | Spot pricing, IRSA, multi-cloud comparison                         |\n\nEnvironments are configured using Kustomize overlays and deployed via ArgoCD. Secrets and cloud-specific configurations are separated by layer.\n\n## Platform Capabilities\n\n### Simulated Load and Scaling\n- Burst and idle traffic patterns\n- Autoscaling and HPA configurations\n- Fault injection for stress testing\n\n### Multi-Environment GitOps Pipeline\n- ArgoCD with GitHub Actions\n- Kustomize overlays for dev, staging, and prod\n- Promotion based on pull request workflow\n\n### Secrets and IAM Strategy\n- Azure Managed Identity and AWS IRSA support\n- RBAC policies per namespace\n- External Secrets and Vault integration planned\n\n### Tunable Cost Scenarios\n- Kubecost with environment-specific profiling\n- Anomaly detection on resource usage\n- Cross-cluster comparisons for pricing strategy\n\n### Operational Resilience\n- Liveness and readiness probes\n- Message retry logic and visibility into failure modes\n- Metrics, logs, and alerting built-in\n\n## Technologies Used\n\n| Category            | Stack                                                             |\n|---------------------|-------------------------------------------------------------------|\n| Infrastructure      | Kubernetes, ArgoCD, Kustomize, Terraform                          |\n| Programming         | .NET 8, Go, Python 3.12, React, GraphQL, Apollo Server       |\n| Messaging           | NATS or Redis Streams                                             |\n| Monitoring          | Prometheus, Grafana, Alertmanager                                 |\n| Cost Management     | Kubecost, anomaly detection models                                |\n| IAM \u0026 Security      | JWT, RBAC, Azure Identity, AWS IRSA                               |\n| Machine Learning    | spaCy, scikit-learn, pandas (local models only)                   |\n| CI/CD               | GitHub Actions, Docker                                            |\n| Persistence         | MongoDB, Postgres                                                 |\n\n## Why This Project?\n\nArchitects often rely on others to implement their designs. This project reverses that. It puts the architect directly in the build path, exploring trade-offs, failures, and edge cases through real implementation.\n\nBugle Call is built to validate architectural patterns, expose system behavior under real conditions, and sharpen judgment through measurable feedback. It is a space to think clearly, build deliberately, and grow with intent.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianfreemantle%2Fbugle-call","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrianfreemantle%2Fbugle-call","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianfreemantle%2Fbugle-call/lists"}