Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Domain Modeling, Elevated
Search
Zach Daniel
February 09, 2024
Technology
1
270
Domain Modeling, Elevated
Zach Daniel
February 09, 2024
Tweet
Share
More Decks by Zach Daniel
See All by Zach Daniel
Introduction to the Ash Framework Elixir Conf 2020
zachsdaniel1
1
780
Other Decks in Technology
See All in Technology
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
810
60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
vtryo
3
980
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
180
CDK Vibe Coding Fes
tomoki10
1
530
ロールが細分化された組織でSREは何をするか?
tgidgd
1
200
AI エージェントと考え直すデータ基盤
na0
18
7.3k
How Do I Contact HP Printer Support? [Full 2025 Guide for U.S. Businesses]
harrry1211
0
130
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
290
Delegating the chores of authenticating users to Keycloak
ahus1
0
180
ゼロからはじめる採用広報
yutadayo
4
1k
cdk initで生成されるあのファイル達は何なのか/cdk-init-generated-files
tomoki10
1
540
「クラウドコスト絶対削減」を支える技術—FinOpsを超えた徹底的なクラウドコスト削減の実践論
delta_tech
4
190
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
The Cult of Friendly URLs
andyhume
79
6.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Gamification - CAS2011
davidbonilla
81
5.4k
Six Lessons from altMBA
skipperchong
28
3.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
The Language of Interfaces
destraynor
158
25k
Transcript
Zach Daniel | May 19 2023 Domain Modeling, Elevated
Outline • What is domain modeling? • Spark • What
is a resource? • Advanced features • Extensibility • What’s new? • What’s coming up?
Domain Modeling
Domain Modeling
Domain Modeling You’re doing it, even if you don’t realize
it
• Interfaces Domain Modeling You’re doing it, even if you
don’t realize it
• Interfaces • Data Domain Modeling You’re doing it, even
if you don’t realize it
• Interfaces • Data • Side e ff ects Domain
Modeling You’re doing it, even if you don’t realize it
• 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
• 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
• 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
• 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
Spark DSL Builder
Spark DSL Builder • Powers all Ash DSLs
Spark DSL Builder • Powers all Ash DSLs • Sets
the core design patterns
Spark DSL Builder • Powers all Ash DSLs • Sets
the core design patterns • Con fi guration & Introspection
Spark DSL Builder • Powers all Ash DSLs • Sets
the core design patterns • Con fi guration & Introspection • Makes DSLs less magic
Spark DSL Builder • Powers all Ash DSLs • Sets
the core design patterns • Con fi guration & Introspection • Makes DSLs less magic
Spark DSL Builder • Powers all Ash DSLs • Sets
the core design patterns • Con fi guration & Introspection • Makes DSLs less magic • Supports extensions
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
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
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
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
What is a resource?
What is a resource?
What is a resource?
What is a resource?
What is a resource?
What is a resource?
What is a resource?
None
None
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work.
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks Ash.Resource.Change
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks Ash.Resource.Preparation
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations Ash.Resource.ManualCreate
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations Ash.Resource.ManualRelationship
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations Elixir Calculations
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations Expression Calculations
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates Aggregating Related Data
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates Lifting Related Data
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates • Policies
Advanced Features The special sauce • Intelligent, integrated tools are
what make it all work. • Standardized Building Blocks • Manual Implementations • Calculations • Aggregates • Policies • Migration Generator
Extending Ash • Extensions can modify resources in arbitrary ways.
Extending Ash • Extensions can modify resources in arbitrary ways.
• Extensions often come along with con fi guration driven tools to leverage them
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
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
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.
What’s new? • AshAuthentication
What’s new? • AshAuthentication • OpenAPI/Swagger Support
What’s new? • AshAuthentication • OpenAPI/Swagger Support
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType • Spark.Dsl.Fragment
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions • Locking
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions • Locking • AshStateMachine & AshOban
What’s new? • AshAuthentication • OpenAPI/Swagger Support • Ash.Type.Union &
Ash.Type.NewType • Spark.Dsl.Fragment • Streaming Read Actions • Locking • AshStateMachine & AshOban • Generic Actions
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
What’s coming up? This is just the beginning!
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions • Atomics
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions • Atomics
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions • Atomics • Generators
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions!
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! SQLite
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! MySQL SQLite
What’s coming up? This is just the beginning! • Constant
QoL and ergonomics improvements • Bulk Actions • Atomics • Generators • More extensions! MySQL SQLite SQL Server
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
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
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