--- title: Stainless design decisions | Stainless description: Useful and interesting details about why some parts of Stainless work the way they do --- We document some of our design decisions for a few reasons: - Learning why Stainless works the way it does helps you develop an intuition for the way we approach problems and reduces friction when using our products - Some of these design decisions explain things several of our customers have been curious about - Documenting these decisions, and the reasons we made them, demonstrates that we’re sweating the details and making carefully-considered choices The design decisions documented in this section cover broad or cross-cutting topics, but we’ve also documented more specific design decisions in other sections. For example, check out our [TypeScript design decisions](/docs/sdks/typescript/#design-decisions/index.md) and [Python design decisions](/docs/sdks/python/#design-decisions/index.md). [Runtime request validation ](/docs/design/runtime-request-validation/index.md)Find out why Stainless SDKs don't perform runtime request validation and how that benefits everyone [Why we generate separate Kotlin and Java SDKs ](/docs/design/kotlin-and-java/index.md)Kotlin is interoperable with Java, but one SDK for both languages doesn't work in practice