I have a very large monolithic legacy application that I am tasked with breaking into many context-bounded applications on a different architecture. My management is pushing for the old and new applications to work in tandem until all of the legacy functionality has been migrated to the current architecture.
Unfortunately, as is the case with many monolithic applications, this one maintains a very large set of state data for each user interaction and it must be maintained as the user progresses through the functionality.
My question is what are some ways that I can satisfy a hybrid legacy/non-legacy architecture responsibly so that in the future state all new individual applications are hopelessly dependent on this shared state model?
My initial thought is to write the state data to a cache of some sort that is accessible to both the legacy application and the new applications so that they may work in harmony until the new applications have the infrastructure necessary to operate independently. I'm very skeptical about this approach so I'd love some feedback or new ways of looking at the problem.
Edit: Per comments, the cache data is comprised of ~170 attributed about the user and account, so it is not super large. I can add more specifics if necessary.
To detail my ideas around caching, we are an AWS shop and I was considering using dynamo db as the cache and setting a TTL for each cache entry as the data will be useless after the user's interaction. I was thinking of having every application (whether in the monolith or a new app) write its state to the cache upon completion or when sending the user to another application. When the user hits a new application the state will be retrieved for use and updated when appropriate.
I believe this could be a good solution to the problem because it will allow the user's interaction to easily traverse between functionality in new and old applications. The risk is that there will be dependency on the old system and it may require substantial efforts to wean new apps off of the reliance on the cache in the future.