# BanyanDB
[](https://github.com/apache/skywalking-banyandb/actions/workflows/ci.yml)
[](https://goreportcard.com/report/github.com/apache/skywalking-banyandb)
[](https://github.com/apache/skywalking-banyandb/releases)
[](https://github.com/apache/skywalking-banyandb/releases)
[](https://godoc.org/github.com/apache/skywalking-banyandb)

BanyanDB, as an observability database, aims to ingest, analyze and store Metrics, Tracing and Logging data.
It's designed to handle observability data generated by observability platform and APM system, like [Apache SkyWalking](https://github.com/apache/skywalking) etc.
## Introduction
BanyanDB, as an observability database, aims to ingest, analyze and store Metrics, Tracing, and Logging data. It's designed to handle observability data generated by Apache SkyWalking. Before BanyanDB emerges, the Databases that SkyWalking adopted are not ideal for the APM data model, especially for saving tracing and logging data. Consequently, There’s room to improve the performance and resource usage based on the nature of SkyWalking data patterns.
The database research community usually uses [RUM Conjecture](http://daslab.seas.harvard.edu/rum-conjecture/) to describe how a database access data. BanyanDB combines several access methods to build a comprehensive APM database to balance read cost, update cost, and memory overhead.
## Contact us
* Submit [an issue](https://github.com/apache/skywalking/issues/new) by selecting the [BanyanDB](https://github.com/apache/skywalking/issues?q=is%3Aopen+is%3Aissue+label%3Adatabase) component.
* Mail list: **dev@skywalking.apache.org**. Mail to dev-subscribe@skywalking.apache.org, follow the reply to subscribe the mail list.
* Send `Request to join SkyWalking slack` mail to the mail list(`dev@skywalking.apache.org`), we will invite you in.
* For Chinese speaker, send `[CN] Request to join SkyWalking slack` mail to the mail list(`dev@skywalking.apache.org`), we will invite you in.
* X (Twitter): [@BanyanDB](https://twitter.com/BanyanDB) and [@ASFSkyWalking](https://twitter.com/ASFSkyWalking)
## Documentation
- [Dev version doc](https://skywalking.apache.org/docs/skywalking-banyandb/next/readme/)
- [Latest release doc](https://skywalking.apache.org/docs/skywalking-banyandb/latest/readme/)
## Developer tooling
The `dump trace-source-catalog` subcommand validates the frozen downloaded trace benchmark shard and writes its deterministic
core and secondary-index ledgers. It requires `--source-path` and a new, outside-source `--output-path`; see the
[trace pipeline merge performance design](docs/design/archive/0.11.0/trace-pipeline-merge-performance-test.md) for the source contract.
The `dump trace-generate-fixture` subcommand consumes that catalog and the immutable downloaded shard, verifies the default
SkyWalking sampler ratio, and writes the deterministic one-day core and secondary-index fixture through the data-node part
receipt path. It requires `--source-path`, `--catalog-path`, a new `--output-path`, and the built sampler `--plugin-path`.
The trace benchmark receiver can enable per-merge JSONL recording for the primary, boundary-drain, and cooldown phases.
Records classify actual sampler execution, preserve merge depth and input lineage, nest secondary-index work under its core
merge, and expose reconciled low-cardinality aggregates plus serial-attribution resource deltas.
## Contributing
For developers who want to contribute to this project, see the [Contribution Guide](CONTRIBUTING.md).
Artifacts that are committed to this repository — currently the generated license files — are built
in a pinned, digest-verified container so that they are byte-identical regardless of the host
operating system. It works on Linux, macOS and Windows (Docker Desktop); WSL2 is the smoother
option on Windows but is not required for this target:
```shell
make docker-license-dep # canonical: regenerate the license files
make check-license-outputs # verify the committed bytes without regenerating
```
The container is streamed the source tree and returns only the generated files; your `node_modules`
and `bin/` are never touched. The native `make license-dep` still works and produces the same bytes.
See [CONTRIBUTING.md](CONTRIBUTING.md#update-licenses) and
[the design](docs/design/0.12.0/docker-canonical-build/README.md).
## License
[Apache 2.0 License.](LICENSE)