├── .github ├── release-drafter.yml └── workflows │ ├── auto-approve.yml │ ├── ci.yml │ ├── mdoc.yml │ └── release-drafter.yml ├── .gitignore ├── .scalafmt.conf ├── README.md ├── core └── src │ ├── main │ └── scala │ │ └── net │ │ └── degoes │ │ └── afd │ │ ├── examples │ │ ├── commerce.scala │ │ ├── events.scala │ │ ├── loyalty.scala │ │ └── onboarding.scala │ │ ├── ruleengine │ │ ├── 01-basics.scala │ │ ├── 02-generic.scala │ │ ├── 03-declarative.scala │ │ ├── 04-persistence.scala │ │ ├── 05-performance.scala │ │ ├── 06-incrementality.scala │ │ ├── 07-graduation.scala │ │ └── model │ │ │ ├── Examples.scala │ │ │ ├── FactDefinition.scala │ │ │ ├── FactType.scala │ │ │ └── Facts.scala │ │ └── welcome.scala │ └── test │ └── scala │ └── net │ └── degoes │ └── afd │ └── model │ └── ExampleSpec.scala ├── project ├── build.properties └── plugins.sbt └── workshop.code-workspace /.github/release-drafter.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/.github/release-drafter.yml -------------------------------------------------------------------------------- /.github/workflows/auto-approve.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/.github/workflows/auto-approve.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/mdoc.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/.github/workflows/mdoc.yml -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/.github/workflows/release-drafter.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/.gitignore -------------------------------------------------------------------------------- /.scalafmt.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/.scalafmt.conf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/README.md -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/examples/commerce.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/examples/commerce.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/examples/events.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/examples/events.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/examples/loyalty.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/examples/loyalty.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/examples/onboarding.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/examples/onboarding.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/01-basics.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/01-basics.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/02-generic.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/02-generic.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/03-declarative.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/03-declarative.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/04-persistence.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/04-persistence.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/05-performance.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/05-performance.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/06-incrementality.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/06-incrementality.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/07-graduation.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/07-graduation.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/model/Examples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/model/Examples.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/model/FactDefinition.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/model/FactDefinition.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/model/FactType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/model/FactType.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/ruleengine/model/Facts.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/ruleengine/model/Facts.scala -------------------------------------------------------------------------------- /core/src/main/scala/net/degoes/afd/welcome.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/main/scala/net/degoes/afd/welcome.scala -------------------------------------------------------------------------------- /core/src/test/scala/net/degoes/afd/model/ExampleSpec.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/core/src/test/scala/net/degoes/afd/model/ExampleSpec.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.6.1 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /workshop.code-workspace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jdegoes/advanced-functional-design/HEAD/workshop.code-workspace --------------------------------------------------------------------------------