{"id":50467615,"url":"https://github.com/podaac/swodlr-async-update","last_synced_at":"2026-06-01T08:02:53.533Z","repository":{"id":171457527,"uuid":"624897393","full_name":"podaac/swodlr-async-update","owner":"podaac","description":"Messaging microservice","archived":false,"fork":false,"pushed_at":"2026-04-12T21:21:40.000Z","size":220,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2026-04-12T22:25:32.837Z","etag":null,"topics":["development","swodlr","tva"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":false,"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/podaac.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-07T14:31:31.000Z","updated_at":"2026-04-12T21:21:43.000Z","dependencies_parsed_at":"2024-01-31T02:06:46.564Z","dependency_job_id":"b90bd865-8cf4-48e7-80b3-df37065fb09e","html_url":"https://github.com/podaac/swodlr-async-update","commit_stats":null,"previous_names":["podaac/swodlr-async-update"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/podaac/swodlr-async-update","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fswodlr-async-update","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fswodlr-async-update/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fswodlr-async-update/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fswodlr-async-update/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/podaac","download_url":"https://codeload.github.com/podaac/swodlr-async-update/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podaac%2Fswodlr-async-update/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33765379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"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":["development","swodlr","tva"],"created_at":"2026-06-01T08:02:53.432Z","updated_at":"2026-06-01T08:02:53.524Z","avatar_url":"https://github.com/podaac.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# swodlr-async-update\n\nAn asynchronous relational database update microservice for ensuring\nsynchronization between SWODLR microservices and its API database\n\n## How it works\n\nOne of the design philosophies of microservices that SWODLR takes full\nadvantage of is distributed design. The idea being that the resources of one\nmicroservice are intended for that microservice and the scope of its operation.\nThis is where async-update comes in. async-update serves as the bridge between\n`swodlr-api` and SWODLR's various microservices. `async-update` takes in the\nsame `jobset` object as `raster-create` emits and performs database updates\non the jobs and their statuses.\n\n`async-update` is triggered via an SQS queue which listens to an update topic\nthat `raster-create` publishes to. From here, `async-update` performs a\ndatabase lookup for the product ID associated with the `job` object its\nprocessing. Depending on what the `job_status` is within the `job` object,\na new Status database entry will be created with the timestamp that\n`async-update` processed the `job` at. The exact mapping logic for which State\nis assigned to the Status entry can be found in the `lib/index.js`.\nAdditionally, within the same SQL transaction, if any granules are found,\nindividual Granule objects are created to track their URI. This process occurs\nregardless of the `job_status`, however, `raster-create` will only include\ngranule URIs in the event of a successful job.\n\n**Note:** `raster-create` emits verbose log information upon an error generating\na raster on the SDS. This information is not meant to be public. For one because\na user can't do anything about diagnosing the issue from their end, and two\nbecause this error output can't be guaranteed to be sanitized for sensitive\ninformation. This log information is instead only kept within the logs for the\nmicroservices and is meant to only be used by system operators/developers. This\nis one of the reasons why `async-update` does ***NOT*** publish the error data\ndirectly to the database.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodaac%2Fswodlr-async-update","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpodaac%2Fswodlr-async-update","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodaac%2Fswodlr-async-update/lists"}