Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gdoumenc/coworks
CoWorks is a unified compositional serverless microservices framework over AWS, Flask and Airflow technologies.
https://github.com/gdoumenc/coworks
airflow aws-lambda flask microservice python3 serverless serverless-framework
Last synced: 30 days ago
JSON representation
CoWorks is a unified compositional serverless microservices framework over AWS, Flask and Airflow technologies.
- Host: GitHub
- URL: https://github.com/gdoumenc/coworks
- Owner: gdoumenc
- License: mit
- Created: 2019-12-07T18:04:16.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-22T15:08:39.000Z (about 1 month ago)
- Last Synced: 2024-11-22T16:20:12.614Z (about 1 month ago)
- Topics: airflow, aws-lambda, flask, microservice, python3, serverless, serverless-framework
- Language: Python
- Homepage:
- Size: 9.86 MB
- Stars: 16
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Contributing: docs/contributing.rst
- License: LICENSE.txt
- Code of conduct: docs/code_of_conduct.md
Awesome Lists containing this project
README
.. image:: https://github.com/gdoumenc/coworks/raw/dev/docs/img/coworks.png
:height: 80px
:alt: CoWorks Logo|Maintenance| |Build Status| |Documentation Status| |Coverage| |Python versions| |Licence|
.. |Maintenance| image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=plastic
:alt: Maintenance
.. |Build Status| image:: https://img.shields.io/travis/com/gdoumenc/coworks?style=plastic
:alt: Build Status
.. |Documentation Status| image:: https://readthedocs.org/projects/coworks/badge/?version=master&style=plastic
:alt: Documentation Status
.. |Coverage| image:: https://img.shields.io/codecov/c/github/gdoumenc/coworks?style=plastic
:alt: Codecov
.. |Python versions| image:: https://img.shields.io/pypi/pyversions/coworks?style=plastic
:alt: Python Versions
.. |Licence| image:: https://img.shields.io/github/license/gdoumenc/coworks?style=plastic
:alt: LicenceCoWorks is a unified serverless microservices framework based on AWS technologies
(`API Gateway `_, `AWS Lambda `_),
the Flask framework (`Flask `_/`Click `_) and
the `Airflow `_ platform.The aim of this project is to offer a very simplified experience of microservices. For such purpose, we divided the
CoWorks framework in two levels:**Small technical microservice**
``TechMicroservice`` are each composed of simple python `Flask `_ application and deployed as a serverless Lambda. Each ``TechMicroService`` is an ``atomic component`` or `atomic microservice `_. These microservices may be called synchronously or asynchronously.
**Functional business service**
``biz`` are `composite business services `_, which are `Airflow `_ DAGs providing orchestration of atomic microservices or components (aka: ``TechMicroService``).
To get started with CoWorks, first follow the `Installation Guide `_. Then you can get a quickstart on `TechMicroService Quickstart `_.
Once familiar with ``TechMicroService``, you can continue with `BizMicroService Quickstart `_.**Data model**
The data model shared between those services may be structured with ``pydantic`` and using the JSON:API specification.
You can install this data protocol for CoWorks with: pip install coworks[jsonapi-sqlalchemy].Documentation
-------------* Setup and installation: `Installation `_
* Complete reference guide: `Documentation `_.
* Samples:
* layers : Get available CoWorks lambda layers: `CoWorks layers `_.
* website : Very simple website done as a simple microservice: `Website `_.
* Read `FAQ `_ for other information.Contributing
------------We work hard to provide a high-quality and useful framework, and we greatly value
feedback and contributions from our community. Whether it's a new feature,
correction, or additional documentation, we welcome your pull requests. Please
submit any `issues `__
or `pull requests `__ through GitHub.Related Projects
----------------* `Flask `_ - Lightweight WSGI web application framework (`Donate to Pallets `_).
* `Airflow `_ - A platform to programmatically author, schedule, and monitor workflows.
* `Terraform `_ - Infrastructure configuration management tool.
* `Pydantic `_ - Data validation using Python type hints.Some ideas guiding this project were found in :
* `Flask-Classy `_
* `PyDANJA `_