Architecture
			
			The Basics# 
- A maelstrom node is a machine running the maelstromdprocess
- A maelstrom cluster is a collection of nodes that share a common database.
- Nodes in a cluster should be able to connect to each other on their private port (8374 by default)
 
- A maelstrom component is a name mapped to configuration that specifies how to start a docker container that
runs a HTTP server. Requests for the component will be reverse proxied to that container on demand.
- Nodes periodically write their current state to the database (default: once per minute)
- All nodes are peers and should be identically configured.
- Nodes acquire locks from the database before performing certain tasks. This ensures that only
one node is performing critical operations such as autoscaling or cron triggering.
- maelctlmakes JSON-RPC requests to a maelstrom node.- 
- The MAELSTROM_PRIVATE_URLenv var tellsmaelctlwhere to connect. (default=http://127.0.0.1:8374)
 
- New nodes that join the cluster will be automatically assigned components to run within 90 seconds of joining.
Routing# 
- All requests and responses in maelstrom are HTTP
- If multiple instances of a component are running, requests are distributed across using round-robin scheduling.
- Each node maintains a routing table and can route requests to its peers if the component is not running locally.
                                  +-----------------+
               +------------------+  Load Balancer  +-------------------+
               |                  |    (optional)   |                   |
               |                  +--------+--------+                   |
               |                           |                            |
               |                           |                            |
               | 80/443                    | 80/443                     | 80/443
      +--------v--------+         +--------v--------+         +---------v-------+
      |node-a           |         |node-b           |         |node-c           |
      |                 +---------+                 +---------+                 |
      |10.0.0.2         |  8374   |10.0.0.3         |  8374   |10.0.0.4         |
      +--------+--------+         +--------+--------+         +---------+-------+
               |                           |                            |
               |                           |                            |
               |                           |                            |
               |                  +--------v--------+                   |
               +----------------->+      MySQL      +<------------------+
                                  |   or Postgres   |
                                  +-----------------+