The application template is by far the fastest way to get up and running with Onyx. It's the spring board that we use every time we want to accomplish a new piece of work using Onyx. When you generate a new project, see the `README.md` for instructions on how to have a fully integrated, hot-code reloaded development environment - no matter what editor you use. The development experience is as smooth as you could dream it to be.
onyx-etl is an standalone project to provide fast Extract, Transform, Load functionality across databases using Onyx as the medium for transfer. One frequent use case is doing a bulk import between a SQL database and Datomic. onyx-etl gives you access to the raw Onyx job, meaning you'll never be sold short on expressivity.
The Onyx Dashboard is the definitive web application for monitoring the status of your Onyx jobs. The dashboard gives you full insight into what your peers are doing, what the status of your jobs are, and the activity of the cluster coordindation log. You'll certainly want to be running this for your production systems.
The Replica Console is a specialized tool used to debug problematic Onyx clusters. This tool displays a terminal console for pretty printing and viewing the coordination log in a very quick manner. If you need help with your production cluster, chances are that we'll ask you to use this tool for diagnostic output. It's also a terrific learning tool if you're trying to understand how Onyx works internally.
Onyx puts deployment in the hands of the user. This brings about tremendous flexibility. At the same time, the deployment scenario for many applications is more or less the same. We've provided an Ansible playbook for deploying Onyx and several related pieces of infrastructure to AWS.
A critical part of running Onyx in production is knowing what your workflows are doing. We've provided onyx-metrics, which a library that can be plugged into any Onyx job for instrumentation. This library gives you visibility into throughputand latency over various quantiles. It can also send output to standard out, Riemann, a websocket, or any arbitrary receiver.
How fast can Onyx go, you ask? Run our AWS one-step benchmark suite to find out. Our benchmark uses Ansible to deploy a series of EC2 instances under spot pricing. You can adjust instance types, spot bids, performance knobs, and just about any other parameter you can think of.
Onyx is a distributed system, and with that comes the responsiblity to test it under stress - namely, network partitions. We've built a Jepsen test suite to run Onyx through a sequence of destructive scenarios to find bugs.