{"id":44233343,"url":"https://github.com/techparaglide/rollout.io","last_synced_at":"2026-05-01T07:02:16.967Z","repository":{"id":337471701,"uuid":"1153816981","full_name":"TechParaglide/Rollout.io","owner":"TechParaglide","description":"Rollout.io – Remote Config is a centralized feature flag and configuration management system that allows applications to change behavior dynamically at runtime without redeployment. It supports controlled feature rollouts, instant rollback, and centralized configuration management, improving reliability and operational safety in production systems.","archived":false,"fork":false,"pushed_at":"2026-04-30T17:01:05.000Z","size":5898,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-30T18:19:44.885Z","etag":null,"topics":["configuration-management","feature-flags","java-backend","microservices","remote-config","saas","spring-boot"],"latest_commit_sha":null,"homepage":"https://rollout-io.web.app","language":"JavaScript","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/TechParaglide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T17:46:49.000Z","updated_at":"2026-04-30T17:01:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TechParaglide/Rollout.io","commit_stats":null,"previous_names":["techparaglide/rollout.io---remote-config"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/TechParaglide/Rollout.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechParaglide%2FRollout.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechParaglide%2FRollout.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechParaglide%2FRollout.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechParaglide%2FRollout.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TechParaglide","download_url":"https://codeload.github.com/TechParaglide/Rollout.io/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechParaglide%2FRollout.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32487739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["configuration-management","feature-flags","java-backend","microservices","remote-config","saas","spring-boot"],"created_at":"2026-02-10T08:00:26.257Z","updated_at":"2026-05-01T07:02:16.954Z","avatar_url":"https://github.com/TechParaglide.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"ASSETS/banner.png\" alt=\"Rollout.io Architecture\" width=\"100%\"\u003e\n\n  \u003ch1\u003eRollout.io\u003c/h1\u003e\n\n  \u003cp\u003e\u003cb\u003eThe Architecture of Instant Change.\u003c/b\u003e\u003c/p\u003e\n  \u003cp\u003eA centralized, ultra-low latency feature flag and configuration management system. Designed for complex distributed microservices architectures dealing with dynamic rendering and runtime execution layers.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003chr /\u003e\n\n## Overview\n\nRollout.io Remote Config is an enterprise-grade feature management platform that enables engineering teams to decouple deployment from release. By centralizing feature flags and configurations, applications can dynamically control features at runtime without initiating a redeployment sequence. It supports safe and targeted rollouts, instantaneous rollbacks, and synchronized configuration state across distributed systems, dramatically improving reliability in high-availability production environments.\n\n## Distributed System Architecture\n\nThe core of Rollout.io is built on a highly scalable, fault-tolerant microservices architecture pattern, orchestrated via Docker and Spring Cloud. \n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"ASSETS/Component_System%20Design.png\" alt=\"Rollout.io System Design\" width=\"100%\"\u003e\n\u003c/div\u003e\n\nThe ecosystem comprises the following internal microservices and infrastructure components:\n* **API Gateway (`port 80`)**: The central entry point handling rate limiting, CORS, and routing traffic to appropriate downstream microservices.\n* **Service Registry (Eureka, `port 5000`)**: Handles dynamic service discovery and registration for all internal microservices.\n* **Config Server**: Centralized configuration management across all environments, utilizing RabbitMQ message bus for real-time configuration propagation.\n* **Auth Service**: Manages security, token validation, and access control.\n* **Control Plane Service**: The administrative backend handling the business logic for feature flag creation, modification, and user targeting.\n* **SDK Service**: A highly optimized, read-heavy API utilizing Redis caching to serve ultra-low latency flag evaluations to client SDKs.\n* **Monitoring \u0026 Observability (`port 5001`)**: Integrated Prometheus and Grafana stack for real-time telemetry, metric aggregation, and system health monitoring.\n\n## Core Capabilities\n\n* **Centralized Flag Management**: A unified control plane to govern all feature toggles across frontend and backend applications.\n* **Zero-Downtime Execution**: Enable and disable features instantly without application restarts or CI/CD pipeline triggers.\n* **Targeted Rollouts**: Gradual feature exposure based on user segmentation and precise contextual targeting.\n* **Instantaneous Rollback**: Emergency kill switches to immediately disable malfunctioning features during cascading failures.\n* **Project Isolation**: Segregated configuration handling across multiple distinct environments (e.g., Development, Staging, Production).\n* **High-Throughput Telemetry**: Asynchronous usage reporting from SDKs to track flag evaluation metrics without blocking the main execution thread.\n\n## Technical Foundation\n\nThe platform leverages a modern, highly scalable distributed technology stack:\n* **Frontend Rendering**: React, Vite\n* **Execution Engine**: Java 17, Spring Boot, Spring Cloud, RESTful APIs\n* **Persistence Layer**: MongoDB\n* **Message Broker**: RabbitMQ\n* **Caching \u0026 Low-Latency Store**: Redis\n* **Telemetry \u0026 Observability**: Prometheus, Grafana\n* **Containerization**: Docker, Docker Compose\n\n## Quick Start Guide\n\n### 1. Initialize the Backend Infrastructure\nThe entire backend ecosystem (microservices, databases, caching layers, and message brokers) is containerized and orchestrated using Docker Compose.\n\n```bash\ncd DEPLOY\ndocker-compose up -d\n```\n*Note: Due to the complexity of the microservices topology, the orchestration uses delayed startup strategies (sleep intervals) to ensure infrastructural dependencies (RabbitMQ, Eureka) are fully initialized before downstream services boot. Initial boot sequence may take 2-3 minutes.*\n\nVerify the container execution state utilizing:\n```bash\ndocker ps\n```\n\n### 2. Configure and Execute the Admin Control Plane (UI)\nThe Admin Dashboard requires Firebase Authentication for secure identity management. \n\n**Authentication Setup:**\nNavigate to `UI/src/firebase.js` and inject your Firebase project configuration parameters:\n```javascript\nconst firebaseConfig = {\n  apiKey: \"YOUR_API_KEY\",\n  authDomain: \"YOUR_PROJECT.firebaseapp.com\",\n  projectId: \"YOUR_PROJECT_ID\",\n  storageBucket: \"YOUR_PROJECT.firebasestorage.app\",\n  messagingSenderId: \"YOUR_SENDER_ID\",\n  appId: \"YOUR_APP_ID\",\n  measurementId: \"YOUR_MEASUREMENT_ID\"\n};\n```\n\n**Bootstrapping the UI Server:**\n```bash\ncd UI\nnpm install\nnpm run dev\n```\n\n### 3. Execute the Integration Test Environment (Zomato Clone)\nTo validate the Rollout.io SDK integration and observe real-time feature flagging, boot the pre-configured sample test application.\n\n```bash\ncd TEST/zomato-clone\nnpm install\nnpm start\n```\n\n## Supported Client SDKs\n\n**JavaScript SDK (`@techparaglide/sdk-js`)**\nProfessional-grade, high-performance SDK designed for web-based rendering environments (Browser \u0026 Node.js).\n\n```bash\nnpm install @techparaglide/sdk-js@latest\n```\nDetailed implementation schematics available at: `SDK/javascript/README.txt`\n\n**Java SDK (`com.rollout.io:sdk-java`)**\nEnterprise-grade SDK built utilizing native `HttpClient` for server-side Java and Spring Boot runtimes.\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.rollout.io\u003c/groupId\u003e\n    \u003cartifactId\u003esdk-java\u003c/artifactId\u003e\n    \u003cversion\u003e5.0.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\nDetailed implementation schematics available at: `SDK/java/README.md`\n\n## Academic Context \u0026 Engineering Team\n\nThis system was architected and developed as a Final Year Project by scholars of the **Information Technology Department** at **Government Engineering College, Gandhinagar**.\n\n**Core Engineering Team:**\n* Parthsinh R. Thakor\n* Dharmik S. Aslaliya\n* Meet N. Parmar\n\n## License\n\nThis project is distributed under the **MIT License**. Reference the `LICENSE` file for full terms and conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechparaglide%2Frollout.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechparaglide%2Frollout.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechparaglide%2Frollout.io/lists"}