You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Love you work on presenting the FFLIB; impressive.
Just curious if you've had a look at the AT4DX framework that John Daniel and I worked on - also available at AEP. Basically it's an extension of FFLIB and ForceDI tuned for Custom Metadata configuration and dependency injection, which better facilitates modular development.
Let either of us know if you're interested or have any questions.
This repo/site does advocate for the ForceDI approach using Custom Metadata/DI. The introduction page outlines the 4 main repos that comprise of fflib/at4dx (ref - fflib-apex-common, fflib-apex-mocks, force-di & at4dx).
The examples of each of the different layers have Custom Metadata steps too as required to get things working (example for Selector Layer.
Maybe the language doesn't 100% align? Happy to adjust if you think it is better presented another way.
Fantastic!! I happily stand corrected. I'll look over things some time, but noticed something. The Service CMDT now has a Priority field designed for implementing mock or substitute services in non-production orgs that may not have access to a real service -- think a cheapo credit card service that doesn't have a dev instance for you to play in. 😄
Consider this diagram as a use case ...
Also the Application Factory pattern is very important to the overall scheme of things by enabling test-context mocks. Have you thought about adding some information about that?
Activity
lukethacoder commentedon Jul 16, 2025
Hi @john-storey-devops,
This repo/site does advocate for the ForceDI approach using Custom Metadata/DI. The introduction page outlines the 4 main repos that comprise of fflib/at4dx (ref -
fflib-apex-common,fflib-apex-mocks,force-di&at4dx).The examples of each of the different layers have Custom Metadata steps too as required to get things working (example for Selector Layer.
Maybe the language doesn't 100% align? Happy to adjust if you think it is better presented another way.
john-storey-devops commentedon Jul 16, 2025
Fantastic!! I happily stand corrected. I'll look over things some time, but noticed something. The Service CMDT now has a Priority field designed for implementing mock or substitute services in non-production orgs that may not have access to a real service -- think a cheapo credit card service that doesn't have a dev instance for you to play in. 😄
Consider this diagram as a use case ...

Also the Application Factory pattern is very important to the overall scheme of things by enabling test-context mocks. Have you thought about adding some information about that?
Good job!!
John Storey