\section{Acknowledgments and Availability}
-Aquarium has been developed under contract from the Greek Ministry of Education
-\todo{Fix Ack}
-
-Aquarium is available under a {\sc bsd} 2-clause license from:
+Aquarium has been developed under contract from the Greek Ministry of Education and is available under a {\sc bsd} 2-clause license from:
\url{https://code.grnet.gr/projects/aquarium}
{\footnotesize \bibliographystyle{acm}
state are stored as a sequence of events, in an immutable log. With such a log,
a system can rebuild its state at any point in time by replaying the
events in order, so it is possible to perform queries on past system states for
-debugging purposes. Moreover, multiple models can be used in order to process
-the events, concurrently, which would enable Aquarium to provide a limited data
-view to its {\sc rest api} and a more detailed one to a potential helpdesk
+debugging purposes. Also, using multiple models can make Aquarium provide a limited data view to its {\sc rest api} and a more detailed one to a potential helpdesk
frontend. Furthermore, application crashes are not destructive, as long as
event replay is fast enough and no state is inserted to the application without
being recorded to the event log first.
\label{fig:arch}
\end{figure}
-Moreover, Aquarium uses actors to encapsulate state; the use of the actor
-model guarantees that only one thread can execute within the context
-of an actor and concequently renders the protection (with copy on
-write or other mechanism) of the actor's state superfluous. The actor
-model also fitted the event sourcing basis very well, since each
-message in the log could pass through various processing stages and
-reach the appropriate actor immutably.
+We use actors to encapsulate state. The actor model guarantees that only one thread touches the actor state, thus eliminating the need for locks.
\paragraph{Components} An overview of the Aquarium architecture is
presented in Figure~\ref{fig:arch}. The system is modeled as a