.. |br| raw:: html
.. image:: /_static/images/filibuster-header.png
:alt: Filibuster: Service-level Fault Injection Testing
|br|
Overview
--------
Filibuster is the prototype implementation of `Service-level Fault Injection Testing `_ (`ACM SoCC '21 `_) written in Python.
Service-level Fault Injection Testing is a technique for identifying resilience issues in microservice-based applications in development, before code ships to production. Filibuster has been designed to be easy to use, lightweight, and able to be integrated into a continuous integration environment, like GitHub Actions or Amazon's CodeBuild CI/CD environment.
Filibuster open-source and available on `GitHub `_.
.. raw:: html
|br|
Roadmap
^^^^^^^
Filibuster currently supports Python services implemented in Flask that communicate using either gRPC or HTTP. Java support for `Armeria `_ web services that communicate using gRPC or HTTP has been completed and is currently being tested.
Authors
^^^^^^^
Filibuster was developed by `Christopher Meiklejohn `_, Andrea Estrada, Yiwen Song, `Heather Miller `_, and `Rohan Padhye `_ in the
`Composable Systems Lab `_ in the `Institute for Software Research `_ at `Carnegie Mellon University `_.
.. image:: /_static/images/isr-logo.png
:width: 150
:alt: Alternative text
.. raw:: html
Table of Contents
-----------------
Depending on your role, we recommend different sections of our documentation.
* For *general readers*, interested in learning how Filibuster can be used on a microservice application to improve resilience, we recommend the Tutorial.
* For *application developers*, looking to use Filibuster on their application to identify resilience issues, we recommend the Tutorial.
* For *infrastructure engineers*, looking to extend Filibuster to support different programming languages and remote procedure call frameworks, we recommend you review the sections on Extending Filibuster and Writing Instrumentation.
.. raw:: html
.. toctree::
:maxdepth: 2
:caption: Overview
research-1
research-2
research-3
.. raw:: html
.. toctree::
:maxdepth: 2
:caption: Using Filibuster
tutorial
tools
timeouts
.. raw:: html
.. toctree::
:maxdepth: 2
:caption: Filibuster Corpus
running
cinema-examples
industry-examples
.. raw:: html
.. toctree::
:maxdepth: 2
:caption: Extending Filibuster
instrumentation-overview
instrumentation-flask
instrumentation-requests
.. raw:: html
.. toctree::
:maxdepth: 2
:caption: Writing Instrumentation: GRPC
instrumentation-grpc-overview
instrumentation-grpc-client
instrumentation-grpc-server
instrumentation-grpc-client-fi
instrumentation-grpc-client-analysis
.. raw:: html
.. toctree::
:maxdepth: 2
:caption: Filibuster Server API
instrumentation-formats
instrumentation-server-create
instrumentation-server-update
instrumentation-server-new-test-execution