{"id":28300364,"url":"https://github.com/neeravbhaskarla/reactive_programming_methods_practise","last_synced_at":"2026-05-02T03:04:06.970Z","repository":{"id":294071051,"uuid":"985902013","full_name":"neeravbhaskarla/reactive_programming_methods_practise","owner":"neeravbhaskarla","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-18T19:00:53.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-16T21:44:09.758Z","etag":null,"topics":["reactive-programming","spring"],"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/neeravbhaskarla.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,"zenodo":null}},"created_at":"2025-05-18T18:53:46.000Z","updated_at":"2025-05-18T19:01:47.000Z","dependencies_parsed_at":"2025-05-18T19:49:02.488Z","dependency_job_id":null,"html_url":"https://github.com/neeravbhaskarla/reactive_programming_methods_practise","commit_stats":null,"previous_names":["neeravbhaskarla/reactive_programming_methods_practise"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neeravbhaskarla/reactive_programming_methods_practise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neeravbhaskarla%2Freactive_programming_methods_practise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neeravbhaskarla%2Freactive_programming_methods_practise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neeravbhaskarla%2Freactive_programming_methods_practise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neeravbhaskarla%2Freactive_programming_methods_practise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neeravbhaskarla","download_url":"https://codeload.github.com/neeravbhaskarla/reactive_programming_methods_practise/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neeravbhaskarla%2Freactive_programming_methods_practise/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32521113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"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":["reactive-programming","spring"],"created_at":"2025-05-23T16:22:19.398Z","updated_at":"2026-05-02T03:04:06.963Z","avatar_url":"https://github.com/neeravbhaskarla.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Full Notes: `FluxAndMonoGeneratorService`\n\n---\n\n## ✅ Basic Flux Operations\n\n---\n\n### 📌 Method: `namesFlux()`\n\n**Description:** Emits the list of names as a `Flux` and logs emissions.\n**APIs used:** `Flux.fromIterable()`, `log()`\n\n```java\npublic Flux\u003cString\u003e namesFlux() {\n    return Flux.fromIterable(names).log();\n}\n```\n\n---\n\n### 📌 Method: `namesMap()`\n\n**Description:** Converts each name to uppercase.\n**APIs used:** `map()`\n\n```java\npublic Flux\u003cString\u003e namesMap() {\n    return Flux.fromIterable(names)\n            .map(String::toUpperCase)\n            .log();\n}\n```\n\n---\n\n### 📌 Method: `namesMapImmutable()`\n\n**Description:** Demonstrates immutability — creates a new mapped `Flux`.\n**APIs used:** `map()`\n\n```java\npublic Flux\u003cString\u003e namesMapImmutable() {\n    var flux = Flux.fromIterable(names).log();\n    return flux.map(String::toUpperCase);\n}\n```\n\n---\n\n### 📌 Method: `namesMapCustomChange()`\n\n**Description:** Converts to uppercase, then prefixes length to each name.\n**APIs used:** `map()`\n\n```java\npublic Flux\u003cString\u003e namesMapCustomChange() {\n    var flux = Flux.fromIterable(names)\n            .map(String::toUpperCase)\n            .map(name -\u003e name.length() + \"-\" + name)\n            .log();\n    return flux;\n}\n```\n\n---\n\n### 📌 Method: `namesFluxFilter()`\n\n**Description:** Filters names where length \u003e 3.\n**APIs used:** `filter()`\n\n```java\npublic Flux\u003cString\u003e namesFluxFilter() {\n    var flux = Flux.fromIterable(names)\n            .filter(name -\u003e name.length() \u003e 3)\n            .log();\n    return flux;\n}\n```\n\n---\n\n## ✅ FlatMap / ConcatMap Operations\n\n---\n\n### 📌 Method: `namesFluxFlatMap()`\n\n**Description:** Flattens each name to characters (no guaranteed order).\n**APIs used:** `flatMap()`\n\n```java\npublic Flux\u003cString\u003e namesFluxFlatMap() {\n    var flux = Flux.fromIterable(names)\n            .flatMap(this::flattenString)\n            .log();\n    return flux;\n}\n```\n\n---\n\n### 📌 Method: `namesFluxFlatMapAsync()`\n\n**Description:** Same as `flatMap()` but with delay.\n**APIs used:** `flatMap()`\n\n```java\npublic Flux\u003cString\u003e namesFluxFlatMapAsync() {\n    var flux = Flux.fromIterable(names)\n            .flatMap(this::flattenStringWithDelay)\n            .log();\n    return flux;\n}\n```\n\n---\n\n### 📌 Method: `namesFluxConcatMapAsync()`\n\n**Description:** Flattens while preserving order (consumes more time).\n**APIs used:** `concatMap()`\n\n```java\npublic Flux\u003cString\u003e namesFluxConcatMapAsync() {\n    var flux = Flux.fromIterable(names)\n            .concatMap(this::flattenStringWithDelay)\n            .log();\n    return flux;\n}\n```\n\n---\n\n## ✅ Transform \u0026 Fallback Operations\n\n---\n\n### 📌 Method: `namesFluxTransform()`\n\n**Description:** Applies reusable filtering + uppercase transformation via `transform()`.\n**APIs used:** `transform()`, `filter()`, `map()`\n\n```java\npublic Flux\u003cString\u003e namesFluxTransform() {\n    Function\u003cFlux\u003cString\u003e, Flux\u003cString\u003e\u003e transformToIndividualUpperCaseChars = name -\u003e\n            name.filter(word -\u003e word.length() \u003e 3)\n                .map(String::toUpperCase);\n\n    var flux = Flux.fromIterable(names)\n            .transform(transformToIndividualUpperCaseChars)\n            .log();\n\n    return flux;\n}\n```\n\n---\n\n### 📌 Method: `namesFluxDefaultIfEmpty()`\n\n**Description:** Provides default value if no elements pass the filter.\n**APIs used:** `transform()`, `defaultIfEmpty()`\n\n```java\npublic Flux\u003cString\u003e namesFluxDefaultIfEmpty() {\n    Function\u003cFlux\u003cString\u003e, Flux\u003cString\u003e\u003e transformToIndividualUpperCaseChars = name -\u003e\n            name.filter(word -\u003e word.length() \u003e 13)\n                .map(String::toUpperCase);\n\n    var flux = Flux.fromIterable(names)\n            .transform(transformToIndividualUpperCaseChars)\n            .defaultIfEmpty(\"default\")\n            .log();\n\n    return flux;\n}\n```\n\n---\n\n### 📌 Method: `namesFluxSwitchIfEmpty()`\n\n**Description:** Switches to another Flux if source is empty.\n**APIs used:** `transform()`, `switchIfEmpty()`\n\n```java\npublic Flux\u003cString\u003e namesFluxSwitchIfEmpty() {\n    Function\u003cFlux\u003cString\u003e, Flux\u003cString\u003e\u003e transformToIndividualUpperCaseChars = name -\u003e\n            name.filter(word -\u003e word.length() \u003e 13)\n                .map(String::toUpperCase);\n\n    var defaultFlux = Flux.just(\"default\").transform(name -\u003e name.map(String::toUpperCase));\n\n    var flux = Flux.fromIterable(names)\n            .transform(transformToIndividualUpperCaseChars)\n            .switchIfEmpty(defaultFlux)\n            .log();\n\n    return flux;\n}\n```\n\n---\n\n## ✅ Mono Operations\n\n---\n\n### 📌 Method: `nameMono()`\n\n**Description:** Emits a single value \"alex\".\n**APIs used:** `Mono.just()`\n\n```java\npublic Mono\u003cString\u003e nameMono() {\n    return Mono.just(\"alex\");\n}\n```\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneeravbhaskarla%2Freactive_programming_methods_practise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneeravbhaskarla%2Freactive_programming_methods_practise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneeravbhaskarla%2Freactive_programming_methods_practise/lists"}