Metadata-Version: 2.1
Name: apf_base
Version: 2.0.0
Summary: ALeRCE Alert Processing Framework.
Author: ALeRCE Team
Author-email: contact@alerce.online
Project-URL: Github, https://github.com/alercebroker/APF
Project-URL: Documentation, https://apf.readthedocs.io/en/latest/index.html
Description-Content-Type: text/markdown
License-File: LICENSE

Alert Processing Framework (*apf*)
================================================

[![Documentation Status](https://readthedocs.org/projects/apf/badge/?version=latest)](https://apf.readthedocs.io/en/latest/?badge=latest) [![codecov](https://codecov.io/gh/alercebroker/APF/branch/master/graph/badge.svg)](https://codecov.io/gh/alercebroker/APF)


*apf* is a framework developed to create a dockerized pipeline to
process an alert stream, that can be easily be deployed in a local
machine or distributed using [Kubernetes](https://kubernetes.io).

First developed to process [ZTF data](https://www.ztf.caltech.edu/) it
is capable to be used for any stream/static data processing pipeline.

Installing *apf*
================

*apf* installation can be done with *pip*

``` {.sourceCode .bash}
pip install apf_base
```

This will install the *apf* python package and *apf* command line
script.

*apf* design
============

*apf* is based on *steps* conected through [Apache
Kafka](https://kafka.apache.org/) topics.

Each *step* is composed by a **consumer** and is isolated from other
steps inside a docker container.

When running, the step calls the **execute()** method for each *message*
consumed. A step can have multiple producers and databases back-ends
plugins that can be accessed inside the *execute* method to have a more
complex logic.


<p align="center">
  <img src="docs/source/_static/images/apf-flow.png">
</p>


This generic step greatly reduce the development of each component of
the pipeline and make it easier to test each component separately.


*apf* features
==============

- Automatic Metric Sender (KafkaMetrics)
- Automatic Code Generation (`apf new-step <step_name>`)
- Multiple Consumer Plugins:
  - Kafka
  - AVRO
  - CSV
  - JSON
- Producers:
  - Kafka
  - CSV
- Metrics:
  - Kafka

*apf* Quickstart
===================

A **quick-start** guide to create a new step can be found [here](https://apf.readthedocs.io/en/latest/new_step.html).
