<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Phaedra 2 – Architecture</title>
    <link>/2.12.0/documentation/technical_docs/architecture/</link>
    <description>Recent content in Architecture on Phaedra 2</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	  <atom:link href="/2.12.0/documentation/technical_docs/architecture/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Documentation: Data Capture</title>
      <link>/2.12.0/documentation/technical_docs/architecture/data_capture/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/2.12.0/documentation/technical_docs/architecture/data_capture/</guid>
      <description>
        
        
        &lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
&lt;p&gt;The Data Capture component is responsible for importing (&amp;ldquo;capturing&amp;rdquo;) new data into the Phaedra system.
It typically starts from an external trigger, such as another program sending out a notification that a
new measurement dataset is available for import.
Technically, these notifications can take the form of an API call, or a message in a messaging system such
as Amazon SQS, Amazon SNS or Apache Kafka.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../img/datacapture_flow.png&#34;&gt;&lt;img src=&#34;../img/datacapture_flow.png&#34; alt=&#34;Data Capture Flow&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;capture-jobs&#34;&gt;Capture Jobs&lt;/h3&gt;
&lt;p&gt;Once a data capture request is received, the &lt;strong&gt;Data Capture Service&lt;/strong&gt; will load the appropriate &lt;strong&gt;capture configuration&lt;/strong&gt;.
This configuration includes a set of &lt;strong&gt;capture scripts&lt;/strong&gt; that should be executed in order to fully capture the dataset,
including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;well-level data&lt;/li&gt;
&lt;li&gt;cell-level data&lt;/li&gt;
&lt;li&gt;raw well images&lt;/li&gt;
&lt;li&gt;well image masks/overlays&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Usually, each type of data is captured by one capture script, so a full capture configuration might include 4 or more scripts.&lt;/p&gt;
&lt;p&gt;The scripts can vary from fast and small (e.g. parsing a single CSV file) to large and heavy (e.g. converting and compressing
thousands of TIFF image files), and therefore are not executed by the Data Capture Service itself. Instead, they are submitted
to a queue and processed by a group of dedicated &lt;strong&gt;ScriptEngine worker&lt;/strong&gt; nodes.&lt;/p&gt;
&lt;p&gt;Once the worker nodes have finished executing all the capture scripts, the Data Capture Service will mark the measurement as
captured and it will become available in Phaedra for further processing. At this point, an event is emitted via Kafka so that
other components (such as the Pipeline Service) can proceed with downstream processing and calculation.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Documentation: Calculation</title>
      <link>/2.12.0/documentation/technical_docs/architecture/calculation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/2.12.0/documentation/technical_docs/architecture/calculation/</guid>
      <description>
        
        
        &lt;h3 id=&#34;overview&#34;&gt;Overview&lt;/h3&gt;
&lt;p&gt;For an overview of Calculation concepts, please refer to &lt;a href=&#34;../../../reference_docs/concepts/calculation&#34;&gt;Concepts &amp;gt; Calculation&lt;/a&gt;.
This document discusses the technical aspects of calculation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../img/calculation_flow.png&#34;&gt;&lt;img src=&#34;../img/calculation_flow.png&#34; alt=&#34;Calculation Flow&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In Phaedra, &lt;strong&gt;calculation&lt;/strong&gt; refers to the execution of a &lt;strong&gt;protocol&lt;/strong&gt; on a &lt;strong&gt;plate&lt;/strong&gt;. The protocol must contain at least one feature
and the plate must have an active measurement linked to it.
When these conditions are satisfied, the Calculation Service can generate a &lt;strong&gt;resultset&lt;/strong&gt; by calculating all the protocol&amp;rsquo;s features
using the measurement&amp;rsquo;s data as input.&lt;/p&gt;
&lt;p&gt;Since a feature may also use another feature&amp;rsquo;s value as input, features have a &lt;strong&gt;sequence&lt;/strong&gt; which can be configured so that one
feature is guaranteed to be calculated before another feature.&lt;/p&gt;
&lt;p&gt;Just like data capture scripts, feature formula scripts can be simple or complex, and therefore are executed on dedicated &lt;strong&gt;ScriptEngine worker&lt;/strong&gt;
nodes. While data capture scripts are typically written in JavaScript, feature formula scripts are more commonly expressed in R.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
