I have some doubts about how to use Rust with Domain-Driven Design (DDD). I would like to know if anyone in the community has already applied DDD in one of their projects and what their experience was like. Additionally, does anyone know of any projects that demonstrate how to effectively combine Rust and DDD?
What doubts do you have? Rust's type system is more extensive—allowing me to express my domain model with more nuance (having to miss sum types is a real pain nowadays for me)—than anything I've seen in languages that are usually used in enterprise systems. Combined with a powerful serialization framework in serde, I never had any issues interfacing with other languages either.
My first question on this topic is: have your Rust projects using Domain-Driven Design (DDD) been successful? In other words, were you able to see them through to the end and deliver the expected results? Have you ever applied DDD and Rust in a web project? If so, what was your experience like? Finally, would you recommend using Rust and DDD for a project that involves financial resources and a set timeline?
Yes. As Jofas mentioned, Rust really excels in this area. The outcome is that the software is very robust and easy to maintain.
If you have no experience with Rust or you have a short delivery timeline, then Rust is a no no. It requires a more thorough development process where each step is deliberately crafted. Rust is not suited for the "move fast and break things" type of software development.
As for if it's suited for the financial industry, I would say yes, 100%. Rust allows you to model things more correctly and do a better job with error handling than other languages.
I think the real question you are seeking an answer to is "can you use Rust to develop business software". Because DDD is a technology agnostic design sytem to develop a software architecture based on your domain model. Can you take said domain model and represent it in Rust? Absolutely. As you can in any other popular programming language.
I've written backends for web services mostly in Rust and Node, and some smaller projects in C# and Python. I liked Rust for such work the most as the services were by far the least error and bug prone.