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
290
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
830
Other Decks in Technology
See All in Technology
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
460
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
170
AWS Network Firewall Proxyを触ってみた
nagisa53
0
190
なぜ今、コスト最適化(倹約)が必要なのか? ~AWSでのコスト最適化の進め方「目的編」~
htan
1
110
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
290
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
2
2.1k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
180
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
200
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
3
1k
プロポーザルに込める段取り八分
shoheimitani
1
180
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
620
GSIが複数キー対応したことで、俺達はいったい何が嬉しいのか?
smt7174
3
150
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Building Applications with DynamoDB
mza
96
6.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Testing 201, or: Great Expectations
jmmastey
46
8k
Into the Great Unknown - MozCon
thekraken
40
2.2k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
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