{"adoption": {"forks": 930, "observed_at": "2026-08-28T04:07:46.454774+00:00", "stars": 3158}, "canonical_url": "https://ross.abutalabs.com/products/event-sourcing-examples", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Example code for my building and deploying microservices with event sourcing, CQRS and Docker presentation", "domain": ["microservices", "backend", "developer-tools", "tutorials"], "enriched": true, "function": ["microservices", "api-framework", "http-server", "message-queue", "api-gateway"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["cer/event-sourcing-examples"], "name": "cer/event-sourcing-examples", "platform": ["jvm", "cross-platform"], "pushed_at": "2020-12-23T10:44:40+00:00", "repo": "cer/event-sourcing-examples", "stars": 3158, "tags": ["event-sourcing", "cqrs", "microservices", "example-application", "eventuate", "ddd", "event-driven-architecture", "money-transfer", "rest-api", "docker", "nodejs"], "topics": [], "urls": [], "use_cases": ["learn event sourcing and CQRS with a concrete example", "see how to decompose an application into microservices", "understand event-driven eventual consistency instead of distributed transactions", "example of deploying services as a monolith or microservices", "reference for building an API gateway facade", "study material for a microservices with Docker presentation"], "what_it_is": "Example code for a money transfer application demonstrating microservices built with event sourcing, CQRS, and Docker, based on Chris Richardson's conference talk. It includes multiple services (customers, accounts, transactions, views, API gateway) built on the Eventuate platform in Java/Spring and JavaScript versions.", "when_to_avoid": ["you need a production-ready framework rather than example code", "you require an actively maintained project - the last release was in 2020", "you want a non-JavaScript/Java stack or a different event sourcing library"], "when_to_choose": ["you want runnable example code illustrating event sourcing and CQRS patterns", "you are evaluating the Eventuate platform for event-driven microservices", "you need a teaching or reference example for event-driven architecture talks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/event-sourcing-examples", "repo": "cer/event-sourcing-examples", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.454774+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:25:36.087121+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d2d9f9b6f8d396dcdf76adf1d3d5cf68768042f54da60ee6a61bc2aba29b02db", "fetched_at": "2026-08-28T04:07:46.454774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cer/event-sourcing-examples"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4263, "days_push": 2079, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}