Integration with Other Systems

Database access, HTTP clients, JVM interop, messaging, and data exchange patterns for connecting Clojure to the rest of a software estate.

Most Clojure systems do not live alone. They talk to databases, HTTP APIs, Java libraries, native components, message brokers, and cloud services with their own assumptions about types, errors, lifecycle, and concurrency.

This chapter is about those seams. Some integration problems are basically serialization problems. Others are ownership problems, retry problems, trust-boundary problems, or resource-lifecycle problems. The useful pattern is often not in the client call itself but in the contract around it.

Read this section as a guide to designing honest boundaries. Good integration code makes failure visible, keeps data conversion explicit, and avoids letting foreign runtime models leak everywhere into the rest of the Clojure codebase.

In this section

Revised on Thursday, April 23, 2026