I’ve made a bunch of progress on Terrapin but I still have a ways to go.
Terrapin is a third-party data management service. Specifically, it manages access and availability to data about any 3rd party using terms required by that third party. It does not store the data itself, rather ensures safe encryption of the data, and access only when all parties agree to the terms.
If you are having trouble parsing that, you are not alone. On my list of TODOs is a better description. Basically, when someone wants to have access to your data, personal or business, the data can be encrypted and stored in such a way that requires the data owner (not the data collector) to agree to give access to the data. Terrapin is not itself a data store of that data, just the keys for access. And terrapin attempts to ensure safety of those keys and reduces blast radius on exposure events by using different techniques including data federation.
So how is it going? As the project name implies, slowly. It’s just me. Terrapin is a set of micro-services that work together to provide the core functionality. Most of the micro-services have a purpose on their own. I spend a few hours a day at most on it. The basic ‘keystore’ exists with a DynamoDB back end, but I need to support other back ends as well. Keystore is a fairly basic RESTful service and has zero logic into the key management aspect, and real key customization doesn’t exist yet.
I’ve being also trying to use newer tech for some components. Resilience4J for example. Okay, new to me. I was in Amazon for 5 years so everything was internal there.) Once I got the basic layout for how the services are setup movement on the code is fast. Example, I wrote a jUnit5 extension for automatically starting/stop databases and including connection details to jUnit tests. (And before you complain about that, I got so tired of folks writing DynamoDB DAOs without testing them I gave up on mocks for that. At least with DynamoDB, the tests are fast. Cassandra start/stop is slow and painful.)
One thing I need to do is layout my full plan for the micro-services today. My old CodeHead docs don’t cut it anymore. And I still plan on using the VioletKeys project to manage out-of-process onsite data encryption. Maybe this weekend I’ll document terrapin better and start trying to get help from others.
At some point, progress for terrapin will be found here
Let me know if you want to help.