#!/usr/bin/env perl

use strict;
use warnings;

use lib 'definitions';

use Data::Dumper;
use Zing::Process;

=pod explain

- zing-process represents a processing unit
- it's a class which is intended to be subclassed
- the zang namespace is used to offer ready-to-use process types
- the 'cleanup' attr when true destroys process data when the event-loop exits
- the 'data' attr has a Zing/Data process-specific key/val store
- the 'journal' attr has a log Zing/Channel used for log shipping
- the 'log' attr has a FlightRecorder log object for structured logging
- the 'logic' attr has the event-loop logic governing the process type
- the 'loop' attr has the process’ event-loop object
- the 'mailbox' attr has a Zing/Mailbox for IPC
- the 'name' attr holds the (unique when generated) process name
- the 'parent' attr is the (optional) object representation of the parent
- the 'registry' attr has the Zing/Registry where all running processes are listed
- a process doesn't fork or thread or magic async in any way
- a process simple has the building blocks for operating in an ...
- an actor-model-based environment with message passing and log-shipping
- a process is usually enacted by calling execute()
- execute() starts the process event-loop


(my $p = Zing::Process->new)->name;

warn Dumper $p;