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

Domain Modeling, Elevated

Avatar for Zach Daniel Zach Daniel
February 09, 2024

Domain Modeling, Elevated

Avatar for Zach Daniel

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