{"id":18068419,"url":"https://github.com/betofigueiredo/go-integrator","last_synced_at":"2026-05-09T14:02:07.828Z","repository":{"id":259048501,"uuid":"874935201","full_name":"betofigueiredo/go-integrator","owner":"betofigueiredo","description":"Example of integrating different applications for data exchange","archived":false,"fork":false,"pushed_at":"2024-10-29T19:15:38.000Z","size":5061,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T16:13:05.486Z","etag":null,"topics":["fastapi","fiber","go","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/betofigueiredo.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":"2024-10-18T18:27:17.000Z","updated_at":"2024-10-29T19:15:53.000Z","dependencies_parsed_at":"2024-12-18T22:40:24.117Z","dependency_job_id":"89908d40-0d97-4477-8caa-b476cfdc0797","html_url":"https://github.com/betofigueiredo/go-integrator","commit_stats":null,"previous_names":["betofigueiredo/go-integrator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/betofigueiredo/go-integrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/betofigueiredo%2Fgo-integrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/betofigueiredo%2Fgo-integrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/betofigueiredo%2Fgo-integrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/betofigueiredo%2Fgo-integrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/betofigueiredo","download_url":"https://codeload.github.com/betofigueiredo/go-integrator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/betofigueiredo%2Fgo-integrator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259490544,"owners_count":22865766,"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":["fastapi","fiber","go","python"],"created_at":"2024-10-31T08:06:24.882Z","updated_at":"2026-05-09T14:02:02.788Z","avatar_url":"https://github.com/betofigueiredo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eGo Integrator\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  Example of integrating different applications for data exchange.\n  \u003cbr/\u003e\n  \u003cstrong\u003e(work in progress)\u003c/strong\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  \u003ca href=\"https://github.com/betofigueiredo/go-integrator/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green?style=for-the-badge\u0026labelColor=363a4f\u0026color=a6da95\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch2\u003eVideo explanation (link)\u003c/h2\u003e\n\n\u003ca href=\"https://drive.google.com/file/d/14fp8_C-IaZpLHxk9xxxMlt1d65HYMNas/view?usp=sharing\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/c12f96ba-b443-4cbf-a523-1dfe0717ffa1\"\u003e\u003c/a\u003e\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\u003ch2\u003eIntegration steps\u003c/h2\u003e\n\n\u003ch3\u003e🔹Request users list from API\u003c/h3\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Concurrently, in chunks of 1000\n\u003cbr/\u003e\n\u003ch3\u003e🔹Map all users ID’s\u003c/h3\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Save in a map, using mutex to handle async r/w\n\u003cbr/\u003e\n\u003ch3\u003e🔹Request additional info for each user\u003c/h3\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Concurrently, in chunks to prevent API overflow\n\u003cbr/\u003e\n\u003ch3\u003e🔹Save additional info in the map\u003c/h3\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;Also using mutex to handle async r/w\n\u003cbr/\u003e\n\u003ch3\u003e🔹Send users data\u003c/h3\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;After processed, send to any selected external service\n\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\u003ch2\u003eAPI\u003c/h2\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Made%20with-Python-blue?style=for-the-badge\u0026labelColor=363a4f\u0026color=346FA0\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://fastapi.tiangolo.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Made%20with-FastAPI-blue?style=for-the-badge\u0026labelColor=363a4f\u0026color=009485\"\u003e\u003c/a\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  Endpoint: \u003cstrong\u003e/users\u003c/strong\u003e\n  \u003cbr/\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/e4adfcf2-29db-4cb0-99ad-1952c7e9708c\" alt=\"API Schema 1\" /\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  Endpoint: \u003cstrong\u003e/users/{user_id}\u003c/strong\u003e\n  \u003cbr/\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/5b2f2487-422c-408c-aabf-2bbd5028427d\" alt=\"API Schema 2\" /\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\u003c/p\u003e\n\n\u003ch2\u003eIntegrator\u003c/h2\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://go.dev/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Made%20with-Go-blue?style=for-the-badge\u0026labelColor=363a4f\u0026color=007d9c\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://gofiber.io/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Made%20with-Fiber-blue?style=for-the-badge\u0026labelColor=363a4f\u0026color=1F4F98\"\u003e\u003c/a\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  Endpoint: \u003cstrong\u003e/get-users\u003c/strong\u003e\n  \u003cbr/\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/f7c1ea85-2866-48c7-989f-958bebb684e5\" alt=\"INTEGRATOR Schema\" /\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\u003c/p\u003e\n\n\u003ch2\u003eUsage\u003c/h2\u003e\n\n\u003cp\u003e\nStart all services:\n\n```zsh\n❯ make up\n```\n\n\u003cbr /\u003e\n\nLoad your database with some data using K6:\n\n```zsh\n❯ k6 run k6/seed-test.js\n```\n\n\u003cbr /\u003e\n\nCall Integrator endpoint to fetch data from API:\n\n```zsh\n❯ curl http://localhost:3002/get-users\n```\n\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbetofigueiredo%2Fgo-integrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbetofigueiredo%2Fgo-integrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbetofigueiredo%2Fgo-integrator/lists"}