**Tags:** #Engineering #Architecture
> [!info]
> This guidance is intended for Decombine Engineering internal use. It is openly shared as part of Decombine's commitment to open core practices.
## Architecture
Decombine backend services are based on microservice architecture in order to facilitate service scope isolation, iterative release practices, and service scalability.
If developing a net new service, memory-safe languages should be preferred to minimize security vulnerabilities. Go and Rust are preferred languages, but others are acceptable and to be expected.
## Distributed Application Runtime (dapr)
Decombine backend services should be developed using dapr. dapr enables a common set of building blocks that can be leveraged with each service to simplify cross-service interaction and reduce generic boilerplate code that doesn't contribute to core business logic.