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
280
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
800
Other Decks in Technology
See All in Technology
Azure Well-Architected Framework入門
tomokusaba
1
310
【新卒研修資料】LLM・生成AI研修 / Large Language Model・Generative AI
brainpadpr
24
17k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
stupid jj tricks
indirect
0
7.9k
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
140
JAZUG 15周年記念 × JAT「AI Agent開発者必見:"今"のOracle技術で拡張するAzure × OCIの共存アーキテクチャ」
shisyu_gaku
0
100
空間を設計する力を考える / 20251004 Naoki Takahashi
shift_evolve
PRO
3
340
SREとソフトウェア開発者の合同チームはどのようにS3のコストを削減したか?
muziyoshiz
1
100
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
3
300
GC25 Recap+: Advancing Go Garbage Collection with Green Tea
logica0419
1
410
10年の共創が示す、これからの開発者と企業の関係 ~ Crossroad
soracom
PRO
1
190
「Verify with Wallet API」を アプリに導入するために
hinakko
1
240
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
6.9k
How to train your dragon (web standard)
notwaldorf
96
6.3k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
890
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Navigating Team Friction
lara
189
15k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Unsuck your backbone
ammeep
671
58k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Gamification - CAS2011
davidbonilla
81
5.5k
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