{ "info": { "author": "yoramk2", "author_email": "yoramk2@yahoo.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Flask", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "

\n \"Halo\n

\n\n# Halo\n\nThe **Halo** Lib is a python based library utilizing [**Serverless**](https://logz.io/blog/serverless-vs-containers/) technology and [**microservices architecture**](http://blog.binaris.com/your-guide-to-migrating-existing-microservices-to-serverless/) \n

Halo provides the following features:\n\n- Django and/or Flask development for AWS Lambda & Dynamodb\n- [correlation id across microservices](https://theburningmonk.com/2017/09/capture-and-forward-correlation-ids-through-different-lambda-event-sources/)\n- [structured json based logging](https://theburningmonk.com/2018/01/you-need-to-use-structured-logging-with-aws-lambda/)\n- [sample debug log in production](https://theburningmonk.com/2018/04/you-need-to-sample-debug-logs-in-production/)\n- [support for microservice transactions with the saga pattern](https://read.acloud.guru/how-the-saga-pattern-manages-failures-with-aws-lambda-and-step-functions-bc8f7129f900)\n- [using SSM Parameter Store over Lambda env variables](https://hackernoon.com/you-should-use-ssm-parameter-store-over-lambda-env-variables-5197fc6ea45b)\n- [Serverless Error Handling & trace id for end users](https://aws.amazon.com/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/)\n- [Lambda timeout](https://blog.epsagon.com/best-practices-for-aws-lambda-timeouts) management for [slow HTTP responses](https://theburningmonk.com/2018/01/aws-lambda-use-the-invocation-context-to-better-handle-slow-http-responses/)\n- [ootb support for Idempotent service invocations (md5)](https://cloudonaut.io/your-lambda-function-might-execute-twice-deal-with-it/)\n\nIf you are building a Python web app running on AWS Lambda (Django or Flask), use this library to manage api transactions:\n\n```\n sagax = load_saga(\"test\", jsonx, schema)\n payloads = {\"BookHotel\": {\"abc\": \"def\"}, \"BookFlight\": {\"abc\": \"def\"}, \"BookRental\": {\"abc\": \"def\"},\n \"CancelHotel\": {\"abc\": \"def\"}, \"CancelFlight\": {\"abc\": \"def\"}, \"CancelRental\": {\"abc\": \"def\"}}\n apis = {\"BookHotel\": self.create_api1, \"BookFlight\": self.create_api2, \"BookRental\": self.create_api3,\n \"CancelHotel\": self.create_api4, \"CancelFlight\": self.create_api5, \"CancelRental\": self.create_api6}\n try:\n self.context = Util.get_lambda_context(request)\n ret = sagax.execute(self.req_context, payloads, apis)\n return {\"saga\": \"good\"}, 200\n except SagaRollBack as e:\n return {\"saga\": \"bad\"}, 500\n```\n\n\n## License\n\nThis project is licensed under the MIT License\n\n## Acknowledgments\n\n* Yan Cui - https://theburningmonk.com\n* flowpl - https://github.com/flowpl/saga_py", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yoramk2/halolib", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "halolib", "package_url": "https://pypi.org/project/halolib/", "platform": "", "project_url": "https://pypi.org/project/halolib/", "project_urls": { "Homepage": "https://github.com/yoramk2/halolib" }, "release_url": "https://pypi.org/project/halolib/0.14.10/", "requires_dist": null, "requires_python": "", "summary": "this is the Halo framework library", "version": "0.14.10" }, "last_serial": 4769210, "releases": { "0.14.10": [ { "comment_text": "", "digests": { "md5": "b7ba46fbde8c19649e3795aeb79430af", "sha256": "d9be718eec9df410482359a172d881b0a565eb452328475c41cd349391c13016" }, "downloads": -1, "filename": "halolib-0.14.10.tar.gz", "has_sig": false, "md5_digest": "b7ba46fbde8c19649e3795aeb79430af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36550, "upload_time": "2019-02-01T17:07:15", "url": "https://files.pythonhosted.org/packages/39/25/29e2f2288a17420a354e1c4106e0382e06f3ca41c71eb514f6b764ad7149/halolib-0.14.10.tar.gz" } ], "0.14.2": [ { "comment_text": "", "digests": { "md5": "6a2a5bdd20001fbea497422396e80762", "sha256": "2c5e5d08ef00a56d816732177f0fa9d8dc839a8a25e01cb0d06ff53065261251" }, "downloads": -1, "filename": "halolib-0.14.2.tar.gz", "has_sig": false, "md5_digest": "6a2a5bdd20001fbea497422396e80762", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35072, "upload_time": "2018-11-12T21:57:23", "url": "https://files.pythonhosted.org/packages/50/a2/b61db441a356140f6419289197b2ef64847b58cf6151ff4aebc5f4b55ac8/halolib-0.14.2.tar.gz" } ], "0.14.3": [ { "comment_text": "", "digests": { "md5": "a164190f3eff87fdcc12aed051e6da94", "sha256": "70a20987bd5ff05225926fbbf7ca957467da7343420617fcc764b9ea14fdbe4d" }, "downloads": -1, "filename": "halolib-0.14.3.tar.gz", "has_sig": false, "md5_digest": "a164190f3eff87fdcc12aed051e6da94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35082, "upload_time": "2018-11-14T16:19:54", "url": "https://files.pythonhosted.org/packages/f4/ad/3c6b14fc3b7e581e4e3893f09279f7ce9585ae9dfc0efba075e0cb3ba410/halolib-0.14.3.tar.gz" } ], "0.14.4": [ { "comment_text": "", "digests": { "md5": "986465c03bc7be899608721f617a7b62", "sha256": "f977103283d3983278a9d75b7c43671c997d45f6ff915f7674db712b02fddbb6" }, "downloads": -1, "filename": "halolib-0.14.4.tar.gz", "has_sig": false, "md5_digest": "986465c03bc7be899608721f617a7b62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35955, "upload_time": "2018-11-24T21:14:10", "url": "https://files.pythonhosted.org/packages/a6/58/e4e386c647d001684354f98ce8dcbc85cee42e269691c8acf1b8385c965d/halolib-0.14.4.tar.gz" } ], "0.14.5": [ { "comment_text": "", "digests": { "md5": "4960182bfd5d60f41d179a1fa2a54645", "sha256": "f28fab3254266b9183272926234cc5048e1126d829e66f641ddcdf4a2542ab21" }, "downloads": -1, "filename": "halolib-0.14.5.tar.gz", "has_sig": false, "md5_digest": "4960182bfd5d60f41d179a1fa2a54645", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36115, "upload_time": "2018-11-29T22:24:18", "url": "https://files.pythonhosted.org/packages/00/cd/7e1fee4d0509654417e38886d533f613f6a9e25f4cbccfb39b4db5d7f9ac/halolib-0.14.5.tar.gz" } ], "0.14.6": [ { "comment_text": "", "digests": { "md5": "0baa6e0947739bab8f9369fc1e4f98b7", "sha256": "c2f6244fd3ff2c15a0290f0019fedbc90fabd9907e9379a055aaee9152d020c6" }, "downloads": -1, "filename": "halolib-0.14.6.tar.gz", "has_sig": false, "md5_digest": "0baa6e0947739bab8f9369fc1e4f98b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36191, "upload_time": "2018-11-29T23:19:47", "url": "https://files.pythonhosted.org/packages/25/70/0061d92b5be28bd9d3a54ec4e6733638bd4907ef64e86abd18ed00ff5357/halolib-0.14.6.tar.gz" } ], "0.14.7": [ { "comment_text": "", "digests": { "md5": "37f246b1874286cf0a5f148b16935ca8", "sha256": "d1364aefea8c7d8a15ddd3aa0073b145e07d2f92bb8368580b22b43d8d2f815d" }, "downloads": -1, "filename": "halolib-0.14.7.tar.gz", "has_sig": false, "md5_digest": "37f246b1874286cf0a5f148b16935ca8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36406, "upload_time": "2018-12-10T16:08:39", "url": "https://files.pythonhosted.org/packages/59/fe/1a24341a9068684c9cfcc3494b3197f6f92931f976d94b9601957bf3f5e4/halolib-0.14.7.tar.gz" } ], "0.14.8": [ { "comment_text": "", "digests": { "md5": "2963fc20d3b3bf7330f8a1bb249ade3d", "sha256": "c472003c431bd615eed98a1a4c105b6617cc3e32cf0363e2df5ea20f7db24b65" }, "downloads": -1, "filename": "halolib-0.14.8.tar.gz", "has_sig": false, "md5_digest": "2963fc20d3b3bf7330f8a1bb249ade3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36429, "upload_time": "2018-12-31T23:26:33", "url": "https://files.pythonhosted.org/packages/6a/a3/4cc5d8964d0b22fd7e98d55d959dbe6a1cc5ff83b70465f1be477d884e38/halolib-0.14.8.tar.gz" } ], "0.14.9": [ { "comment_text": "", "digests": { "md5": "c8bfa4209dede1450dc87b073f549920", "sha256": "cd23d874129f5d6641dc6697804d197545b7fd85d5073b11658c914e55b16c6e" }, "downloads": -1, "filename": "halolib-0.14.9.tar.gz", "has_sig": false, "md5_digest": "c8bfa4209dede1450dc87b073f549920", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36524, "upload_time": "2019-01-28T12:42:39", "url": "https://files.pythonhosted.org/packages/8e/96/59a8933d2a11aab2497a68507b778393c7b0b2d8dbeea0cf16a5eaa34fa5/halolib-0.14.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b7ba46fbde8c19649e3795aeb79430af", "sha256": "d9be718eec9df410482359a172d881b0a565eb452328475c41cd349391c13016" }, "downloads": -1, "filename": "halolib-0.14.10.tar.gz", "has_sig": false, "md5_digest": "b7ba46fbde8c19649e3795aeb79430af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36550, "upload_time": "2019-02-01T17:07:15", "url": "https://files.pythonhosted.org/packages/39/25/29e2f2288a17420a354e1c4106e0382e06f3ca41c71eb514f6b764ad7149/halolib-0.14.10.tar.gz" } ] }