{"id":21495653,"url":"https://github.com/deepgram/deepgram-sdk-architecture","last_synced_at":"2026-02-09T00:03:47.360Z","repository":{"id":198062558,"uuid":"684805214","full_name":"deepgram/deepgram-sdk-architecture","owner":"deepgram","description":"This repository captures the canonical architecture shared by every Deepgram SDK","archived":false,"fork":false,"pushed_at":"2025-10-22T14:10:28.000Z","size":42,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-22T15:45:23.723Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.deepgram.com","language":null,"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/deepgram.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":"2023-08-29T22:26:20.000Z","updated_at":"2025-10-22T14:10:32.000Z","dependencies_parsed_at":"2023-10-11T18:53:00.102Z","dependency_job_id":"73233d96-75a5-4ca8-a92a-ee19ab8f41bc","html_url":"https://github.com/deepgram/deepgram-sdk-architecture","commit_stats":null,"previous_names":["deepgram/sdks-architecture"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deepgram/deepgram-sdk-architecture","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdeepgram-sdk-architecture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdeepgram-sdk-architecture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdeepgram-sdk-architecture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdeepgram-sdk-architecture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deepgram","download_url":"https://codeload.github.com/deepgram/deepgram-sdk-architecture/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fdeepgram-sdk-architecture/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29250227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T22:49:53.206Z","status":"ssl_error","status_checked_at":"2026-02-08T22:49:51.384Z","response_time":57,"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":"2024-11-23T16:12:42.475Z","updated_at":"2026-02-09T00:03:47.353Z","avatar_url":"https://github.com/deepgram.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deepgram SDK Architecture\n\nThis repository captures the canonical architecture shared by every Deepgram SDK generated from the\n[`deepgram-api-specs`](https://github.com/deepgram/deepgram-api-specs) definition using\n[Fern](https://buildwithfern.com/). It documents the layered build pipeline, runtime primitives, and extension points\nthat keep language-specific SDKs – such as the\n[`deepgram-python-sdk`](https://github.com/deepgram/deepgram-python-sdk) – consistent while letting each platform take\nadvantage of native capabilities.\n\n## Contents\n\n- [`docs/00-overview.md`](docs/00-overview.md) – goals, guiding principles, and package layout.\n- [`docs/01-generation-pipeline.md`](docs/01-generation-pipeline.md) – how specs flow through Fern to produce SDKs.\n- [`docs/02-runtime-architecture.md`](docs/02-runtime-architecture.md) – generated layers versus hand-written\n  extensions.\n- [`docs/03-authentication.md`](docs/03-authentication.md) – API key and bearer-token credential handling.\n- [`docs/04-transport-abstraction.md`](docs/04-transport-abstraction.md) – HTTP/WebSocket pipelines and override hooks.\n- [`docs/05-telemetry.md`](docs/05-telemetry.md) – phone-home telemetry capture, batching, and opt-out behavior.\n- [`docs/06-module-map.md`](docs/06-module-map.md) – service-to-module mapping and domain responsibilities.\n- [`docs/glossary.md`](docs/glossary.md) – shared terminology.\n\n## Architecture Highlights\n\n- **Spec-first generation** keeps SDKs synchronized with the public API and aligns release cadences.\n- **Layered runtime** merges generated Fern clients with focused extension packages for authentication, telemetry, and\n  transport customisation.\n- **Flexible credentials** accept API keys, bearer tokens, or environment-derived secrets without boilerplate.\n- **Pluggable transports** allow drop-in HTTP and WebSocket implementations for complex network environments.\n- **Privacy-conscious telemetry** emits aggregated insights while supporting first-class opt-out controls.\n\n## How to Use This Repository\n\n1. Start with the [overview](docs/00-overview.md) to understand the package structure and cross-language goals.\n2. Review the [generation pipeline](docs/01-generation-pipeline.md) when updating specs or Fern configuration.\n3. Consult the runtime documents when adding features to individual SDKs or designing new extension layers.\n4. Mirror the documented patterns when auditing language-specific implementations (for example, the Python SDK).\n\n## Contributing\n\nImprovements are welcome in the form of RFCs so we preserve a historical record of architectural decisions. Open a\n[new RFC](https://github.com/deepgram/deepgram-sdk-architecture/issues/new?assignees=lukeocodes\u0026labels=RFC%2C+draft\u0026projects=\u0026template=rfc.md\u0026title=%5BDATE%5D%3A+%5BFEATURE+NAME%5D)\nthat links to relevant API spec or SDK changes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepgram%2Fdeepgram-sdk-architecture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepgram%2Fdeepgram-sdk-architecture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepgram%2Fdeepgram-sdk-architecture/lists"}