Go to Top

Distributed architecture

Arachni’s distributed architecture has been established from its early beginnings.

It allows you to remotely perform and control scans by deploying agents on remote servers and is designed to fit into your workflow and easily integrate with your existing infrastructure.

Depending on the level of control you require over the process, you can either choose the REST service or the custom RPC protocol.

Both approaches allow you to:

  • Remotely monitor and manage scans.
  • Perform multiple scans at the same time — Each scan is compartmentalized to its own OS process to take advantage of:
    • Multi-core/SMP architectures.
    • OS-level scheduling/restrictions.
    • Sandboxed failure propagation.
  • Communicate over a secure channel.

REST API

  • Very simple and straightforward API.
  • Easy interoperability with non-Ruby systems.
    • Operates over HTTP.
    • Uses JSON to format messages.
  • Stateful scan monitoring.
    • Unique sessions automatically only receive updates when polling for progress, rather than full data.

RPC API

  • High-performance/low-bandwidth communication protocol.
    • MessagePack serialization for performance, efficiency and ease of integration with 3rd party systems.
  • Grid:
    • Self-healing.
    • Scale up/down by hot-plugging/hot-unplugging nodes.
      • Can scale up infinitely by adding nodes to increase scan capacity.
    • (Always-on) Load-balancing — All Instances are automatically provided by the least burdened Grid member.
      • With optional per-scan opt-out/override.
    • (Optional) High-Performance mode — Combines the resources of multiple nodes to perform multi-Instance scans.
      • Enabled on a per-scan basis.