Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Domain Modeling, Elevated

Zach Daniel
February 09, 2024

Domain Modeling, Elevated

Zach Daniel

February 09, 2024
Tweet

More Decks by Zach Daniel

Other Decks in Technology

Transcript

  1. Outline • What is domain modeling? • Spark • What

    is a resource? • Advanced features • Extensibility • What’s new? • What’s coming up?
  2. • Interfaces • Data • Side e ff ects Domain

    Modeling You’re doing it, even if you don’t realize it
  3. • Interfaces • Data • Side e ff ects •

    The intersection of business and technology Domain Modeling You’re doing it, even if you don’t realize it
  4. • Interfaces • Data • Side e ff ects •

    The intersection of business and technology Domain Modeling You’re doing it, even if you don’t realize it
  5. • Interfaces • Data • Side e ff ects •

    The intersection of business and technology • There is no “one size fi ts all” Domain Modeling You’re doing it, even if you don’t realize it
  6. • Interfaces • Data • Side e ff ects •

    The intersection of business and technology • There is no “one size fi ts all” Domain Modeling You’re doing it, even if you don’t realize it
  7. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection
  8. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection • Makes DSLs less magic
  9. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection • Makes DSLs less magic
  10. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection • Makes DSLs less magic • Supports extensions
  11. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection • Makes DSLs less magic • Supports extensions • Used outside of Ash
  12. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection • Makes DSLs less magic • Supports extensions • Used outside of Ash
  13. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection • Makes DSLs less magic • Supports extensions • Used outside of Ash
  14. Spark DSL Builder • Powers all Ash DSLs • Sets

    the core design patterns • Con fi guration & Introspection • Makes DSLs less magic • Supports extensions • Used outside of Ash
  15. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks Ash.Resource.Change
  16. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks Ash.Resource.Preparation
  17. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations Ash.Resource.ManualCreate
  18. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations Ash.Resource.ManualRelationship
  19. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations Elixir Calculations
  20. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations Expression Calculations
  21. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates Aggregating Related Data
  22. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates Lifting Related Data
  23. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates • Policies
  24. Advanced Features The special sauce • Intelligent, integrated tools are

    what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates • Policies • Migration Generator
  25. Extending Ash • Extensions can modify resources in arbitrary ways.

    • Extensions often come along with con fi guration driven tools to leverage them
  26. Extending Ash • Extensions can modify resources in arbitrary ways.

    • Extensions often come along with con fi guration driven tools to leverage them • Extensions can fundamentally change the way you use the framework
  27. Extending Ash • Extensions can modify resources in arbitrary ways.

    • Extensions often come along with con fi guration driven tools to leverage them • Extensions can fundamentally change the way you use the framework
  28. Extending Ash • Extensions can modify resources in arbitrary ways.

    • Extensions often come along with con fi guration driven tools to leverage them • Extensions can fundamentally change the way you use the framework • The builtin extensions are just the beginning. They are all built with tools you can use too.
  29. What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &

    Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions
  30. What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &

    Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions • Locking
  31. What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &

    Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions • Locking • AshStateMachine & AshOban
  32. What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &

    Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions • Locking • AshStateMachine & AshOban • Generic Actions
  33. What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &

    Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions • Locking • AshStateMachine & AshOban • Generic Actions • Bulk Creates
  34. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions
  35. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics
  36. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics
  37. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators
  38. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions!
  39. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! SQLite
  40. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! MySQL SQLite
  41. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! MySQL SQLite SQL Server
  42. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! MySQL SQLite SQL Server CQRS
  43. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! MySQL SQLite SQL Server CQRS GRPC
  44. What’s coming up? This is just the beginning! • Constant

    QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! MySQL SQLite SQL Server CQRS GRPC Multi Data Layer