I couldn't wait to use the Postgres Foreign Data Wrapper (postgres_fdw) in a project; imagine being able to read and write data to many databases all from a single database! I finally found a project where it made sense to use this amazing technology. I mapped out my architecture and began to code, and realized there were some things that did not work as expected: I could not call remote functions or insert into a table with a serial primary key and have it autoupdate. I found workarounds (which I will share), so the project went on. We tested the setup, everything seemed to work well, and then we went to deploy to production. And then the real fun began. Despite the title, I still love the Postgres FDW but wanted to provide some cautionary tales from a hybrid developer/DBA perspective on how to properly use them in your working environment. This talk will cover: * Basic Postgres FDW setup in a development environment vs. production environment * Handling some common FDW uses case that you think are trivial but are not * Working with advanced Postgres constructs such as schemas and sequences with FDWs * Putting it all together to make sure your production application is safe with your FDWs * ...and when you really, really need to make a remote call and it is not supported by a FDW, how to do that too!