ANTI-HERO

A distributed system for balancing durability and resource cost

ANTI-HERO web view on a laptop

Flexible & Scalable

Configure ANTI-HERO exactly how you want or take a hands-off approach — your choice

Semi-Decentralized

Breathe easy knowing that ANTI-HERO will continue to operate, even in the midst of server failures

Balanced

By leveraging existing infrastructure, ANTI-HERO provides fault tolerance with minimal extra cost.

Fault Tolerant

Automatic Failure Detection

ANTI-HERO utilizes a node partnering system to leverage existing infrastructure while also providing the added benefit of fault tolerance. Paired nodes can work independently under normal conditions and when necessary, automatically detect failures and take over for their partner.

Diagram of ANTI-HERO partner nodes detecting a failure and taking over

Self-Healing

Automatic Recovery after Failure

Previously failed worker nodes are able to automatically detect their own failure and initiate the recovery process via the Orchestrator. No user intervention needed.

Diagram of a failed ANTI-HERO worker node recovering through the Orchestrator

Semi-Decentralized

Centralized orchestration, but only as needed

Worker nodes only report to the centralized Orchestrator as needed. Under normal operating conditions, no centralized communication is needed. As a result, even if communication between worker nodes and the Orchestrator temporarily falters, transactions can continue.

Scalable

Scale with Additional Nodes as Needed

Seamlessly register new worker nodes, transfer inventory, and assign partners

Diagram of a new worker node being registered with ANTI-HERO

Live Monitoring & Analytics

Monitor cluster status with web view

Monitoring the status of the cluster's worker nodes and their network traffic is easy with ANTI-HERO's data graph views and 3D Traffic Visualizer powered by D3.js and Three.js, respectively.

ANTI-HERO web view showing worker node status and network traffic

Automated Interactive Test Client

Interactively configure and test your setup

Managing the system is easy with the interactive client which supports configuring the system as well as running automated testing experiments. No need to memorize complicated commands or verbose URLs.

ANTI-HERO interactive test client running in a terminal
What technologies are used?

The basis of ANTI-HERO is its intercommunicating APIs, which were built using the Python framework Flask (later modifications used FastAPI). Additionally, the background worker and test client were also written using Python. ANTI-HERO's web view is a React-based single-page application that connects directly to the servers running ANTI-HERO.

How is the data stored?

Each worker node and the Orchestrator has its own local standalone PostgreSQL database. ANTI-HERO utilizes SQLAlchemy in order to interface with the PostgreSQL database; however, any database compatible with SQLAlchemy can be configured for use with the system.