{"id":20533971,"url":"https://github.com/anicolaspp/rabbites","last_synced_at":"2025-10-14T16:06:09.639Z","repository":{"id":95258188,"uuid":"161095775","full_name":"anicolaspp/rabbites","owner":"anicolaspp","description":"A small and direct bridge between RabbitMQ and MapR-ES - RabbitES","archived":false,"fork":false,"pushed_at":"2018-12-12T05:32:53.000Z","size":475,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-14T16:05:21.894Z","etag":null,"topics":["apache","bigdata","mapr","mapr-es","rabbit","rabbitmq","scala","streams"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/anicolaspp.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}},"created_at":"2018-12-10T00:39:47.000Z","updated_at":"2018-12-12T05:32:55.000Z","dependencies_parsed_at":"2023-03-13T16:52:35.909Z","dependency_job_id":null,"html_url":"https://github.com/anicolaspp/rabbites","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anicolaspp/rabbites","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicolaspp%2Frabbites","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicolaspp%2Frabbites/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicolaspp%2Frabbites/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicolaspp%2Frabbites/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anicolaspp","download_url":"https://codeload.github.com/anicolaspp/rabbites/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anicolaspp%2Frabbites/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019559,"owners_count":26086750,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"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":["apache","bigdata","mapr","mapr-es","rabbit","rabbitmq","scala","streams"],"created_at":"2024-11-16T00:24:37.532Z","updated_at":"2025-10-14T16:06:09.593Z","avatar_url":"https://github.com/anicolaspp.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RabbitES\nA small and direct bridge between RabbitMQ and MapR-ES\n\n\nThe main idea is that a number of workers are created so that RabbitMQ distributed the messages across them. Each worker will try to write to the specify MapR Stream using the specified topic. If a topic is not especified, the worker will create a topic that matches the name of the queue where messages are read from in RabbitMQ. If the process of writting a message fails, the message is requeue so other worker can process it again, avoiding loosing the message.\n\n\nThis project is built using `Maven`. \n\n```bash\nmvn clean compile package\n```\n\nExecute the following command to run it.\n\n```bash\njava -cp \"/opt/mapr/lib/*:rabbites-1.0.0.jar:.\" -Djava.library.path=/opt/mapr/lib com.github.anicolaspp.rabbites.App -r localhost -w 2 -q hello --stream /user/mapr/streams/bridge -t mytopic\n```\n\nThis will create 2 workers (`-w 2`) connect them to `localhost` (`-r localhost`) that read from queue `hello` (`-q hello`). Each message published to RabbitMQ is disributed to the workers for better balancing and work distribution. Each worker will write each message to `/user/mapr/streams/bridge` (`--stream /user/mapr/streams/bridge`) on the specified topic `mytopic` (`-t mytopic`).\n\nMake sure the target stream is create before hand. You can use `maprcli` in the following way to achieve this task.\n\n```\nmaprcli stream create -path /user/mapr/streams/bridge \n```\n\nWhile messages are written to the cluster, we can inspect the target stream in different ways to make sure the process is going fine.\n\n\nTo get information about the stream we could run.\n```\nmaprcli stream info -path /user/mapr/streams/bridge -json\n```\n\nIf we are interested on counting the number of messages on the stream, we could run.\n\n```\nmapr streamanalyzer -path /user/mapr/streams/bridge\n```\n\n## RabbitEs Architecture Overview\n\n![](./IMG_1042.PNG)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanicolaspp%2Frabbites","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanicolaspp%2Frabbites","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanicolaspp%2Frabbites/lists"}