The inability to express architectural concepts and constraints explicitly in implementation code invites the problem of architectural drift and corrosion. We propose runtime checks as a solution to mitigate this problem. The key idea of our approach is to express architectural constraints or properties in an assertion language and use the runtime assertion checker of the assertion language to detect any violations of the constraints. The architectural assertions are written in terms of architectural concepts such as components, connectors, and configurations, and thus they can be easily mapped to or traced back to the original high-level constraints written in an architectural description language. We believe that our approach is effective and more practical than and complements static techniques.