Need advice about which tool to choose?Ask the StackShare community!
Bazel vs Dynomite: What are the differences?
Bazel: Correct, reproducible, fast builds for everyone. Bazel is a build tool that builds code quickly and reliably. It is used to build the majority of Google's software, and thus it has been designed to handle build problems present in Google's development environment; Dynomite: Making Non-Distributed Databases, Distributed. Dynomite is a generic dynamo implementation that can be used with many different key-value pair storage engines. Currently these include Redis and Memcached. Dynomite supports multi-datacenter replication and is designed for high availability.
Bazel belongs to "Java Build Tools" category of the tech stack, while Dynomite can be primarily classified under "Database Cluster Management".
Some of the features offered by Bazel are:
- Multi-language support: Bazel supports Java, Objective-C and C++ out of the box, and can be extended to support arbitrary programming languages.
- High-level build language: Projects are described in the BUILD language, a concise text format that describes a project as sets of small interconnected libraries, binaries and tests. By contrast, with tools like Make you have to describe individual files and compiler invocations.
- Multi-platform support: The same tool and the same BUILD files can be used to build software for different architectures, and even different platforms. At Google, we use Bazel to build both server applications running on systems in our data centers and client apps running on mobile phones.
On the other hand, Dynomite provides the following key features:
- Replication
- Highly available reads
- Pluggable Datastores
Bazel and Dynomite are both open source tools. Bazel with 12.4K GitHub stars and 2.03K forks on GitHub appears to be more popular than Dynomite with 3.09K GitHub stars and 395 GitHub forks.
Pros of Bazel
- Fast28
- Deterministic incremental builds20
- Correct17
- Multi-language16
- Enforces declared inputs/outputs14
- High-level build language10
- Scalable9
- Multi-platform support5
- Sandboxing5
- Dependency management4
- Windows Support2
- Flexible2
- Android Studio integration1
Pros of Dynomite
- Multi datacenters or regions3
- Low latency high throughput2
- Pluggable APIs (Currently have Redis/Memcached APIs)2
- Scale1
- Support many datastores: redis, memcached, rocksdb, etc1
Sign up to add or upvote prosMake informed product decisions
Cons of Bazel
- No Windows Support3
- Bad IntelliJ support2
- Poor windows support for some languages1
- Constant breaking changes1
- Learning Curve1
- Lack of Documentation1