{"id":42749037,"url":"https://github.com/openmessaging/openconnect","last_synced_at":"2026-01-29T19:30:58.268Z","repository":{"id":37388155,"uuid":"156380126","full_name":"openmessaging/openconnect","owner":"openmessaging","description":"OpenConnect proposes  a specification for messaging, eventing and streaming connect scenario which provides various sources and sinks.","archived":false,"fork":false,"pushed_at":"2024-08-08T10:55:18.000Z","size":226,"stargazers_count":51,"open_issues_count":4,"forks_count":31,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-01-14T01:47:35.934Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openmessaging.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-11-06T12:26:41.000Z","updated_at":"2025-11-29T05:37:05.000Z","dependencies_parsed_at":"2024-08-08T04:14:00.004Z","dependency_job_id":"682fb108-bf3e-4571-8e3f-69222daecd39","html_url":"https://github.com/openmessaging/openconnect","commit_stats":null,"previous_names":["openmessaging/openmessaging-connect"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/openmessaging/openconnect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmessaging%2Fopenconnect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmessaging%2Fopenconnect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmessaging%2Fopenconnect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmessaging%2Fopenconnect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openmessaging","download_url":"https://codeload.github.com/openmessaging/openconnect/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmessaging%2Fopenconnect/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28883090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T19:23:39.025Z","status":"ssl_error","status_checked_at":"2026-01-29T19:22:11.631Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-29T19:30:58.196Z","updated_at":"2026-01-29T19:30:58.261Z","avatar_url":"https://github.com/openmessaging.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenConnect\n\n## Introduction\nOpenConnect is a standard to connect between data sources and data destinations. Users could easily create connector instances with configurations via REST API.\n\nThere are two types of connectors: source connector and sink connector. A source connector is used for pulling data from a data source (e.g. RDBMS).\nThe data is sent to corresponding message queue and expected to be consumed by one or many sink connectors.\nA sink connector receives message from the queue and loads into a data destination (e.g. data warehouse).\nDevelopers should implement source or sink connector interface to run their specific job.\n\nUsually, connectors rely on a concrete message queue for data transportation. The message queue decouples source connectors from sink connectors.\nIn the meantime, it provides capabilities such as failover, rate control and one to many data transportation etc.\nSome message queues (e.g. Kafka) provide bundled connect frameworks and a various of connectors developed officially or by the community.\nHowever, these frameworks are lack of interoperability, which means a connector developed for Kafka cannot run with \nRabbitMQ without modification and vice versa.\n\n![dataflow](flow.png \"dataflow\")\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fopenmessaging%2Fopenmessaging-connect.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fopenmessaging%2Fopenmessaging-connect?ref=badge_shield)\n\nA connector follows OpenMessaging Connect could run with any message queues which support OpenMessaging API.\nOpenMessaging Connect provides a standalone runtime which uses OpenMessaging API for sending and consuming message,\nas well as the key/value operations for offset management.\n\n\n\n## Connector\n\n`void verifyAndSetConfig(KeyValue config)`\n\u003cbr\u003eShould invoke before start the connector.\n\n`void start()`\n\u003cbr\u003eStart the connector.\n\n`void stop()`\n\u003cbr\u003eStop the connector.\n\n`void pause()`\n\u003cbr\u003ePause the connector.\n\n`void resume()`\n\u003cbr\u003eResume the connector.\n\n`Class\u003c? extends Task\u003e taskClass()`\n\u003cbr\u003eReturns the Task implementation for this Connector.\n\n`List\u003cKeyValue\u003e taskConfigs()`\n\u003cbr\u003eReturns a set of configurations for Task based on the current configuration.\n\n## Task\n\n`void start(KeyValue config)`\n\u003cbr\u003eStart the task with the given config.\n\n`void stop()`\n\u003cbr\u003eStop the task.\n\n`void pause()`\n\u003cbr\u003ePause the task.\n\n`void resume()`\n\u003cbr\u003eResume the task.\n\n### Source task\n\n`Collection\u003cSourceDataEntry\u003e poll()`\n\u003cbr\u003eReturn a collection of message entries to send.\n\n### Sink task\n\n`void put(Collection\u003cSinkDataEntry\u003e message)`\n\u003cbr\u003ePut the data entries to the sink.\n\n\n\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fopenmessaging%2Fopenmessaging-connect.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fopenmessaging%2Fopenmessaging-connect?ref=badge_large)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmessaging%2Fopenconnect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmessaging%2Fopenconnect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmessaging%2Fopenconnect/lists"}