{ "info": { "author": "Nam Ngo", "author_email": "namngology@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "esser - [E]vent [S]ourcing [Ser]verlessly\n============================================\n\n[![pypi version]( https://img.shields.io/pypi/v/esser.svg)]( https://pypi.python.org/pypi/esser)\n[![pypi package]( https://img.shields.io/pypi/dm/esser.svg)]( https://pypi.python.org/pypi/esser)\n[![Build Status](https://travis-ci.org/geeknam/esser.svg?branch=master)](https://travis-ci.org/geeknam/esser)\n[![Coverage Status](https://coveralls.io/repos/github/geeknam/esser/badge.svg?branch=master)](https://coveralls.io/github/geeknam/esser?branch=master)\n[![Code Issues](https://www.quantifiedcode.com/api/v1/project/2644f358dc5246da951352fb0550f84f/badge.svg)](https://www.quantifiedcode.com/app/project/2644f358dc5246da951352fb0550f84f)\n[![Slack](https://img.shields.io/badge/chat-slack-ff69b4.svg)](https://esser-py.slack.com/)\n\n\n- Serverless + Pay-As-You-Go\n- Aggregates\n- Snapshots\n- Projections\n\nRuntime\n-----------------\n\n- AWS Lambda Python\n\n\nEvent Store\n-----------------\n\nThe primary data store used for writes is `DynamoDB`\nSnapshoting can be achieved via `DynamoDB` streams\n\nQuery Store\n-----------------\n\nAggregates should be queried using a different store.\nAvailable strategies for storing materialsed views:\n\n- PostgreSQL\n- Elasticsearch\n- Redis\n\nAWS Lambda can pull changes from DynamoDB stream and update the\nquery models.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://geeknam.github.io/esser", "keywords": "event sourcing,framework,esser,serverless,dynamodb,lambda", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "esser", "package_url": "https://pypi.org/project/esser/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/esser/", "project_urls": { "Homepage": "https://geeknam.github.io/esser" }, "release_url": "https://pypi.org/project/esser/0.1.1/", "requires_dist": [ "cerberus", "pynamodb" ], "requires_python": "", "summary": "Python Event Sourcing framework", "version": "0.1.1" }, "last_serial": 2738750, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "8e10501aaaa1498f2eb496e142806d1d", "sha256": "d7128bcade82056b0800617f16f8e8d42010bd0108980e215a444299042ba229" }, "downloads": -1, "filename": "esser-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8e10501aaaa1498f2eb496e142806d1d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7307, "upload_time": "2017-03-25T05:12:03", "url": "https://files.pythonhosted.org/packages/b2/fb/1d4d0d28db2fab3181eb5402818383048caa2f5b83a9053004bbfa86c7f1/esser-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5e6005f194629e3d9a28ee2a15bdf30", "sha256": "ddb002e1c73342af1270adc6ab6b9d9cccf614c999d1806b85e51c5a4951f0a0" }, "downloads": -1, "filename": "esser-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a5e6005f194629e3d9a28ee2a15bdf30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4036, "upload_time": "2017-03-25T05:12:06", "url": "https://files.pythonhosted.org/packages/4c/2b/61896fd10cfd1983ca13a1a15d7b48c456e31e8a8416e50f37d835ee4b32/esser-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "dabf7f6cfebad073de854e17d00ab3a2", "sha256": "8e0cfc6374c21f21d5563e6e3f46fbb29b7e185b927fda189dc2dc99425edb68" }, "downloads": -1, "filename": "esser-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "dabf7f6cfebad073de854e17d00ab3a2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7167, "upload_time": "2017-03-29T14:03:14", "url": "https://files.pythonhosted.org/packages/ab/5e/0e2efc74957d1785a3d0c25caf5c034d49502435b372bbd9bcfc718a35ba/esser-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "947e7cdea248b83e1efb74532e4e1936", "sha256": "12db183dc9ba428c750df99aa3f5530747d977f81b8a6ffa3304f99f57814aeb" }, "downloads": -1, "filename": "esser-0.1.1.tar.gz", "has_sig": false, "md5_digest": "947e7cdea248b83e1efb74532e4e1936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3850, "upload_time": "2017-03-29T14:03:16", "url": "https://files.pythonhosted.org/packages/41/ec/45dbedf1d0965dc36e02c4aa29db37e83168341c67ce8cc2268412c348fb/esser-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dabf7f6cfebad073de854e17d00ab3a2", "sha256": "8e0cfc6374c21f21d5563e6e3f46fbb29b7e185b927fda189dc2dc99425edb68" }, "downloads": -1, "filename": "esser-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "dabf7f6cfebad073de854e17d00ab3a2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7167, "upload_time": "2017-03-29T14:03:14", "url": "https://files.pythonhosted.org/packages/ab/5e/0e2efc74957d1785a3d0c25caf5c034d49502435b372bbd9bcfc718a35ba/esser-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "947e7cdea248b83e1efb74532e4e1936", "sha256": "12db183dc9ba428c750df99aa3f5530747d977f81b8a6ffa3304f99f57814aeb" }, "downloads": -1, "filename": "esser-0.1.1.tar.gz", "has_sig": false, "md5_digest": "947e7cdea248b83e1efb74532e4e1936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3850, "upload_time": "2017-03-29T14:03:16", "url": "https://files.pythonhosted.org/packages/41/ec/45dbedf1d0965dc36e02c4aa29db37e83168341c67ce8cc2268412c348fb/esser-0.1.1.tar.gz" } ] }