the goal of zipper, aka the Storage Abstraction Layer (SAL), is to establish an API boundary between the things that *are* and *are not* backend-specific. this way, our HTTP request/op processing can be generic enough to support any backend there is work in progress to make these backends loadable as shared libraries, which means that we'll be moving all of the rados-specific stuff out of radosgw into a separate library target these loadable libraries will still depend on some common rgw code for the many rgw types that show up in the SAL interface - stuff like RGWUserInfo/RGWBucketInfo/etc. but other rgw code will depend on SAL, and i'd like to avoid any circular dependencies here so i propose that we repurpose src/rgw/CMakeLists.txt's 'rgw_common' static library to contain only those types in the SAL interface, and move everything else into the 'rgw_a' library target this way, SAL can depend on rgw_common, and rgw_a can depend on both SAL and rgw_common, without any circular dependencies eventually we'll also want to make guarantees about SAL API stability, which means that we'll need to be extra careful when making any changes to 'rgw_common'. it might also be a good idea to move these common files into a separate namespace and/or subdirectory _______________________________________________ Dev mailing list -- dev@xxxxxxx To unsubscribe send an email to dev-leave@xxxxxxx