{"id":15069202,"url":"https://github.com/zinaaan/reactive-programing","last_synced_at":"2026-02-02T06:09:04.186Z","repository":{"id":214496778,"uuid":"736665627","full_name":"Zinaaan/reactive-programing","owner":"Zinaaan","description":"reactive-programing","archived":false,"fork":false,"pushed_at":"2024-07-08T02:52:02.000Z","size":176,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T07:23:53.569Z","etag":null,"topics":["jvm","metrics","micrometer","reactive-programming"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zinaaan.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-12-28T14:23:44.000Z","updated_at":"2024-07-08T02:52:05.000Z","dependencies_parsed_at":"2024-07-08T03:50:48.838Z","dependency_job_id":"f8bb45b6-965b-49f2-a461-6bc526d34f29","html_url":"https://github.com/Zinaaan/reactive-programing","commit_stats":null,"previous_names":["zinaaan/reactive-programing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Zinaaan/reactive-programing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zinaaan%2Freactive-programing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zinaaan%2Freactive-programing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zinaaan%2Freactive-programing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zinaaan%2Freactive-programing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zinaaan","download_url":"https://codeload.github.com/Zinaaan/reactive-programing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zinaaan%2Freactive-programing/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262212982,"owners_count":23276023,"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":["jvm","metrics","micrometer","reactive-programming"],"created_at":"2024-09-25T01:41:01.165Z","updated_at":"2026-02-02T06:09:04.116Z","avatar_url":"https://github.com/Zinaaan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Reactor programming\n-----------------------\n\nOne of the main goals of this is to address the problem of backpressure. If we have a producer which is emitting events to a consumer faster than it can process them, then eventually the consumer will be overwhelmed with events, running out of system resources.\n\n**Backpressure means** that our consumer should be able to tell the producer how much data to send in order to prevent this, and this is what is laid out in the specification.\n\nNote:\n1. Flux and Mono are implementations of the Reactive Streams Publisher interface.\n2. The core difference between Java8 streams and Reactive is that **Reactive is a push model**, whereas the **Java 8 Streams are a pull model**. In a reactive approach, events are pushed to the subscribers as they come in.\n\n## JVM and System Metrics\n\nMicrometer provides several binders for monitoring the JVM:\n\nnew ClassLoaderMetrics().bindTo(registry); (1)\n\nnew JvmMemoryMetrics().bindTo(registry); (2)\n\nnew JvmGcMetrics().bindTo(registry); (3)\n\nnew ProcessorMetrics().bindTo(registry); (4)\n\nnew JvmThreadMetrics().bindTo(registry); (5)\n\n1. Gauges loaded and unloaded classes.\n\n2. Gauges buffer and memory pool utilization.\n\n3. Gauges max and live data size, promotion and allocation rates, and times GC pauses (or concurrent phase time in the case of CMS).\n\n4. Gauges current CPU total and load average.\n\n5. Gauges thread peak, number of daemon threads, and live threads.\n\nMicrometer also provides a meter binder for ExecutorService. You can instrument your ExecutorService as follows:\n\nnew ExecutorServiceMetrics(executor, executorServiceName, tags).bindTo(registry);\nMetrics created from the binder vary based on the type of ExecutorService.\n\nFor ThreadPoolExecutor, the following metrics are provided:\n\nexecutor.completed (FunctionCounter): The approximate total number of tasks that have completed execution.\n\nexecutor.active (Gauge): The approximate number of threads that are actively executing tasks.\n\nexecutor.queued (Gauge): The approximate number of tasks that are queued for execution.\n\nexecutor.pool.size (Gauge): The current number of threads in the pool.\n\nFor ForkJoinPool, the following metrics are provided:\n\nexecutor.steals (FunctionCounter): Estimate of the total number of tasks stolen from one thread’s work queue by another. The reported value underestimates the actual total number of steals when the pool is not quiescent.\n\nexecutor.queued (Gauge): An estimate of the total number of tasks currently held in queues by worker threads.\n\nexecutor.active (Gauge): An estimate of the number of threads that are currently stealing or executing tasks.\n\nexecutor.running (Gauge): An estimate of the number of worker threads that are not blocked but are waiting to join tasks or for other managed synchronization threads.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzinaaan%2Freactive-programing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzinaaan%2Freactive-programing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzinaaan%2Freactive-programing/lists"}