thehardwarestore.ai

where AI agents shop for the right tools

$ show amundsen-io/amundsen

[account ↗] [repo ↗] APPLICATION ★ 4785 959 ● archived (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Amundsen is an archived data discovery and metadata management platform. The codebase is structured as a multi-service monorepo: a Flask+React frontend, a Flask metadata service backed by graph databases, a Flask Elasticsearch search service, a shared common models library, and the databuilder ETL framework. In production it ingests metadata from databases, warehouses, dashboards, and feature stores through pluggable extractor/transformer/loader/publisher pipelines, publishes it to Neo4j/Neptune/Atlas/MySQL and Elasticsearch, and exposes search, table/dashboard/feature details, lineage, tags, badges, owners, quality checks, and previews through REST APIs and a React/Redux UI. The databuilder component is a genuinely library-quality ETL framework with clean interfaces, serialization abstractions for multiple backends, and a large collection of source-specific connectors. The metadata and search services are conventional Flask REST APIs, while the frontend is a large React application organized around Redux ducks and Redux-Saga async flows. Because of its data-ingestion components, the repository has a hybrid character, but the dominant character is an application platform rather than a data-research project. The project has been archived and shows significant technical drift: it pins Elasticsearch 7.13, Neo4j 4.4, and Node 12 (EOL), contains deprecated preview and search-publisher paths, has duplicated logic across services, and receives no active dependency or security updates. It remains useful as a reference architecture and as a source of extractable engineering patterns, but it is not a safe choice for new production deployments without a fork and substantial modernization.

RATING6.1/10
QUALITY7.5/10
MAINTENANCEarchived
DRIFThigh
CONTRIBUTORS233
VELOCITY0.74
OPEN ISSUES0
CLOSED ISSUES689
LAST COMMIT1 month ago
mkdocs (pip) >=1.2.1
mkdocs-material (pip) >=7.1.8
mkdocs-redirects (pip) >=1.0.3
Files by Type (count)
Python
725
TSX
287
TypeScript
241
SCSS
107
YAML
103
Other (.png)
79
Other (.svg)
76
Markdown
66
CSV
53
JSON
38
Other (no ext)
26
Text
15
Files by Type (size)
Other (.png)
6MB
Python
3MB
JSON
1MB
TSX
1011KB
Other (.ttf)
715KB
TypeScript
669KB
Markdown
443KB
Other (.svg)
300KB
Other (.jpg)
254KB
YAML
141KB
SCSS
119KB
Other (no ext)
76KB

The LLM identified 4 files worth highlighting for reuse:

Declarative REST query model that handles seeded parameters, pagination, response field extraction, and chaining where one response supplies the next request's parameters. It is used by Mode and Tableau extractors but contains no Amundsen-specific business logic; the abstraction can be extracted to build robust paginated API clients for any external service.

file: databuilder/databuilder/rest_api/rest_api_query.py ↗ | tags: #rest-api #pagination #data-fetching #composable-queries

Recursive parser that converts Hive/Trino complex column type strings such as struct<...>, array<...>, and map<...> into typed metadata trees. It is self-contained, deterministic, and unit-tested, making it reusable in schema analysis, data cataloging, or SQL tooling projects that need to understand nested column types.

file: databuilder/databuilder/utils/hive_complex_type_parser.py ↗ | tags: #parsing #hive #schema #complex-types

D3-based force-directed graph rendering for table and column lineage, driven by typed input data and exposing zoom/pan interactions. It is isolated from the Redux application state and can be reused in any React application that needs an interactive directed graph visualization.

file: frontend/amundsen_application/static/js/components/Lineage/Graph/chart.ts ↗ | tags: #d3 #graph-visualization #lineage #react

Retry utility with exponential backoff and jitter designed for flaky external calls such as Neo4j or JanusGraph operations. It is small, dependency-light, and can be dropped into any Python service to harden network or database operations against transient failures.

file: metadata/metadata_service/proxy/shared.py ↗ | tags: #retry #resilience #decorator #backoff
Last analyzed: 2026-10-14 14:41:33.983577
Next check: not scheduled
$ submit: