{"id":24791510,"url":"https://github.com/sofyan48/wahoo","last_synced_at":"2025-10-28T18:02:57.773Z","repository":{"id":72495183,"uuid":"231151942","full_name":"sofyan48/wahoo","owner":"sofyan48","description":"Data stream library with kinesis","archived":false,"fork":false,"pushed_at":"2020-01-01T19:56:59.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T19:09:59.063Z","etag":null,"topics":["aws","data","data-stream","event","kinesis","stream"],"latest_commit_sha":null,"homepage":"","language":"Go","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/sofyan48.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":"2019-12-31T22:18:55.000Z","updated_at":"2020-01-01T19:57:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"86d20e40-ec5f-4200-a4ec-af248bb71699","html_url":"https://github.com/sofyan48/wahoo","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sofyan48/wahoo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fwahoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fwahoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fwahoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fwahoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sofyan48","download_url":"https://codeload.github.com/sofyan48/wahoo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofyan48%2Fwahoo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260780474,"owners_count":23062041,"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":["aws","data","data-stream","event","kinesis","stream"],"created_at":"2025-01-29T19:17:17.642Z","updated_at":"2025-10-28T18:02:57.655Z","avatar_url":"https://github.com/sofyan48.png","language":"Go","readme":"# WAHOO\nData Streamer with AWS Kinesis\n\n\n## Getting Started\n### Install\n```bash\ngo get github.com/sofyan48/wahoo\n```\n\n### Producer\n\n```golang\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/joho/godotenv\"\n\t\"github.com/sofyan48/wahoo/api\"\n\t\"github.com/sofyan48/wahoo/config\"\n)\n\nfunc main() {\n\tgodotenv.Load()\n\tcfg := config.Configure()\n\tcfg.AwsAccessKeyID = os.Getenv(\"ACCESS_KEY\")\n\tcfg.AwsSecretAccessKey = os.Getenv(\"SECRET_KEY\")\n\tcfg.APArea = os.Getenv(\"REGION\")\n\tcfg.StreamName = os.Getenv(\"STREAM_NAME\")\n\tcfg.ShardID = os.Getenv(\"SHARD_ID\")\n\n\tclient := config.NewConfig().Credential(cfg).New()\n\tshardID, err := config.NewConfig().GetShardID(client, \"TRIM_HORIZON\")\n\tif err != nil {\n\t\tfmt.Println(\"Error :\", err)\n\t\tos.Exit(0)\n\t}\n\tproducer := api.NewProducer(client, shardID)\n\tdata := []byte(\"{\\\"data\\\": {\\\"CompanyCode\\\": \\\"12345\\\",\\\"CustomerNumber\\\": \\\"ABC0012300DEF\\\",\\\"RequestID\\\": \\\"201507131507262221400000001975\\\",\\\"ChannelType\\\": \\\"6014\\\",\\\"CustomerName\\\": \\\"Customer BCA Virtual Account\\\",\\\"CurrencyCode\\\": \\\"IDR\\\",\\\"PaidAmount\\\": \\\"150000.00\\\",\\\"TotalAmount\\\": \\\"150000.00\\\",\\\"SubCompany\\\": \\\"00000\\\",\\\"TransactionDate\\\": \\\"15/03/2014 22:07:40\\\",\\\"Reference\\\": \\\"1234567890\\\",\\\"DetailBills\\\": [],\\\"FlagAdvide\\\": \\\"N\\\",\\\"Additionaldata\\\": \\\"\\\"}\\n}\")\n\n\tresponse, err := producer.Publish(data, \"keys\")\n\tif err != nil {\n\t\tfmt.Println(\"Error :\", err)\n\t\tos.Exit(0)\n\t}\n\tfmt.Println(response.ShardId)\n}\n\n```\n\n### Consumer\n```golang\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/joho/godotenv\"\n\t\"github.com/sofyan48/wahoo/api\"\n\t\"github.com/sofyan48/wahoo/config\"\n)\n\nfunc main() {\n\tgodotenv.Load()\n\tcfg := config.Configure()\n\tcfg.AwsAccessKeyID = os.Getenv(\"ACCESS_KEY\")\n\tcfg.AwsSecretAccessKey = os.Getenv(\"SECRET_KEY\")\n\tcfg.APArea = os.Getenv(\"REGION\")\n\tcfg.StreamName = os.Getenv(\"STREAM_NAME\")\n\tcfg.ShardID = os.Getenv(\"SHARD_ID\")\n\n\tclient := config.NewConfig().Credential(cfg).New()\n\tshardIter, err := config.NewConfig().GetShardIterator(client, \"TRIM_HORIZON\")\n\tif err != nil {\n\t\tfmt.Println(\"Error :\", err)\n\t\tos.Exit(0)\n\t}\n\tconsumer := api.NewConsumer(client, shardIter)\n\tdata, err := consumer.GetRecord()\n\tif err != nil {\n\t\tfmt.Println(\"Error :\", err)\n\t\tos.Exit(0)\n\t}\n\tfor _, i := range data.Records {\n\t\tfmt.Println(string(i.Data))\n\t}\n}\n\n```\n\n### Describe Data \n```golang\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/joho/godotenv\"\n\t\"github.com/sofyan48/wahoo/api\"\n\t\"github.com/sofyan48/wahoo/config\"\n)\n\nfunc main() {\n\tgodotenv.Load()\n\tcfg := config.Configure()\n\tcfg.AwsAccessKeyID = os.Getenv(\"ACCESS_KEY\")\n\tcfg.AwsSecretAccessKey = os.Getenv(\"SECRET_KEY\")\n\tcfg.APArea = os.Getenv(\"REGION\")\n\tcfg.StreamName = os.Getenv(\"STREAM_NAME\")\n\tcfg.ShardID = os.Getenv(\"SHARD_ID\")\n\n\tclient := config.NewConfig().Credential(cfg).New()\n\tshardIter, err := config.NewConfig().GetShardIterator(client, \"TRIM_HORIZON\")\n\tif err != nil {\n\t\tfmt.Println(\"Error :\", err)\n\t\tos.Exit(0)\n\t}\n\n\tdescribe := api.NewDescribe(client, shardIter)\n\tdescribe.Describe()\n}\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofyan48%2Fwahoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsofyan48%2Fwahoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofyan48%2Fwahoo/lists"}