{"id":13667642,"url":"https://github.com/gdoumenc/coworks","last_synced_at":"2025-04-13T00:13:28.119Z","repository":{"id":43708925,"uuid":"226555557","full_name":"gdoumenc/coworks","owner":"gdoumenc","description":"CoWorks is a unified compositional serverless microservices framework over AWS, Flask and Airflow technologies.","archived":false,"fork":false,"pushed_at":"2025-03-12T15:23:25.000Z","size":10390,"stargazers_count":17,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-26T18:11:15.670Z","etag":null,"topics":["airflow","aws-lambda","flask","microservice","python3","serverless","serverless-framework"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gdoumenc.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":"docs/code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-07T18:04:16.000Z","updated_at":"2025-01-06T13:37:48.000Z","dependencies_parsed_at":"2023-12-28T14:24:49.575Z","dependency_job_id":"a2f6dc44-039a-4a5e-a976-3a337fb4caf2","html_url":"https://github.com/gdoumenc/coworks","commit_stats":{"total_commits":967,"total_committers":6,"mean_commits":"161.16666666666666","dds":"0.16649431230610134","last_synced_commit":"dd38378ab6dc850ce5d9c3e3c52ec4dc32da983f"},"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdoumenc%2Fcoworks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdoumenc%2Fcoworks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdoumenc%2Fcoworks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdoumenc%2Fcoworks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdoumenc","download_url":"https://codeload.github.com/gdoumenc/coworks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647277,"owners_count":21139086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airflow","aws-lambda","flask","microservice","python3","serverless","serverless-framework"],"created_at":"2024-08-02T07:00:45.047Z","updated_at":"2025-04-13T00:13:28.097Z","avatar_url":"https://github.com/gdoumenc.png","language":"Python","funding_links":[],"categories":["Made with Chalice"],"sub_categories":[],"readme":".. image:: https://github.com/gdoumenc/coworks/raw/dev/docs/img/coworks.png\n    :height: 80px\n    :alt: CoWorks Logo\n\n|Maintenance| |Build Status| |Documentation Status| |Coverage| |Python versions| |Licence|\n\n.. |Maintenance| image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=plastic\n    :alt: Maintenance\n.. |Build Status| image:: https://img.shields.io/travis/com/gdoumenc/coworks?style=plastic\n    :alt: Build Status\n.. |Documentation Status| image:: https://readthedocs.org/projects/coworks/badge/?version=master\u0026style=plastic\n    :alt: Documentation Status\n.. |Coverage| image:: https://img.shields.io/codecov/c/github/gdoumenc/coworks?style=plastic\n    :alt: Codecov\n.. |Python versions| image:: https://img.shields.io/pypi/pyversions/coworks?style=plastic\n    :alt: Python Versions\n.. |Licence| image:: https://img.shields.io/github/license/gdoumenc/coworks?style=plastic\n    :alt: Licence\n\nCoWorks is a unified serverless microservices framework based on AWS technologies\n(`API Gateway \u003chttps://aws.amazon.com/api-gateway/\u003e`_, `AWS Lambda \u003chttps://aws.amazon.com/lambda/\u003e`_),\nthe Flask framework (`Flask \u003chttps://github.com/pallets/flask\u003e`_/`Click \u003chttps://github.com/pallets/click\u003e`_) and\nthe `Airflow \u003chttps://github.com/apache/airflow\u003e`_ platform.\n\nThe aim of this project is to offer a very simplified experience of microservices. For such purpose, we divided the\nCoWorks framework in two levels:\n\n**Small technical microservice**\n\n``TechMicroservice`` are each composed of simple python `Flask \u003chttps://github.com/pallets/flask\u003e`_ application and deployed as a serverless Lambda. Each ``TechMicroService`` is an ``atomic component`` or `atomic microservice \u003chttp://resources.fiorano.com/blog/microservices/\u003e`_. These microservices may be called synchronously or asynchronously.\n\n**Functional business service**\n\n``biz`` are `composite business services \u003chttp://resources.fiorano.com/blog/microservices/\u003e`_, which are `Airflow \u003chttps://github.com/apache/airflow\u003e`_ DAGs providing orchestration of atomic microservices or components (aka: ``TechMicroService``).\n\nTo get started with CoWorks, first follow the `Installation Guide \u003chttps://coworks.readthedocs.io/en/latest/installation.html\u003e`_. Then you can get a quickstart on `TechMicroService Quickstart \u003chttps://coworks.readthedocs.io/en/latest/tech_quickstart.html\u003e`_.\nOnce familiar with ``TechMicroService``, you can continue with `BizMicroService Quickstart \u003chttps://coworks.readthedocs.io/en/latest/biz_quickstart.html\u003e`_.\n\n**Data model**\n\nThe data model shared between those services may be structured with ``pydantic`` and using the JSON:API specification.\nYou can install this data protocol for CoWorks with: pip install coworks[jsonapi-sqlalchemy].\n\nDocumentation\n-------------\n\n* Setup and installation: `Installation \u003chttps://coworks.readthedocs.io/en/latest/installation.html\u003e`_\n* Complete reference guide: `Documentation \u003chttps://coworks.readthedocs.io/\u003e`_.\n* Samples:\n    * layers : Get available CoWorks lambda layers: `CoWorks layers \u003chttps://2kb9hn4bs4.execute-api.eu-west-1.amazonaws.com/v1\u003e`_.\n    * website : Very simple website done as a simple microservice: `Website \u003chttps://3jr90vkbe5.execute-api.eu-west-1.amazonaws.com/v1\u003e`_.\n* Read `FAQ \u003chttps://coworks.readthedocs.io/en/master/faq.html/\u003e`_ for other information.\n\nContributing\n------------\n\nWe work hard to provide a high-quality and useful framework, and we greatly value\nfeedback and contributions from our community. Whether it's a new feature,\ncorrection, or additional documentation, we welcome your pull requests. Please\nsubmit any `issues \u003chttps://github.com/gdoumenc/coworks/issues\u003e`__\nor `pull requests \u003chttps://github.com/gdoumenc/coworks/pulls\u003e`__ through GitHub.\n\nRelated Projects\n----------------\n\n* `Flask \u003chttps://github.com/pallets/flask\u003e`_ - Lightweight WSGI web application framework (`Donate to Pallets \u003chttps://palletsprojects.com/donate\u003e`_).\n* `Airflow \u003chttps://github.com/apache/airflow\u003e`_ - A platform to programmatically author, schedule, and monitor workflows.\n* `Terraform \u003chttps://github.com/hashicorp/terraform\u003e`_ - Infrastructure configuration management tool.\n* `Pydantic \u003chttps://github.com/pydantic/pydantic\u003e`_ - Data validation using Python type hints.\n\nSome ideas guiding this project were found in :\n\n* `Flask-Classy \u003chttps://github.com/apiguy/flask-classy\u003e`_\n* `PyDANJA \u003chttps://github.com/Centurix/pydanja\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdoumenc%2Fcoworks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdoumenc%2Fcoworks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdoumenc%2Fcoworks/lists"}