如何在Web应用程序之间共享数据?

我有两个Web应用程序,一个面向客户,另一个面向内部使用。 两者都使用PostgreSQL数据库。 我可以在这些应用程序之间共享数据的方法是什么? 这两个应用程序都需要读取和写入权限,但数据不需要立即可用。 此外,我希望这两个应用程序不依赖于对方,可以脱机,而不会影响其他应用程序。

我可以考虑以下选项。 我错过了什么吗?

选项A:第三个数据库

最简单的办法是拥有两个应用程序都可以访问的第三个PostgreSQL数据库。 我可以看到的缺点是数据库模式需要相同,并且这两个应用程序都需要第二个数据库始终在线。

选项B:独立的API服务

与选项A类似,但是这两个应用程序都可以访问并使用API​​使用独立的服务。 服务仍然需要始终可用。

选项C:消息事件

这两个应用程序都有自己的一组数据并发布更改事件。 一个消息系统,如Amazon SQS,其中应用程序将侦听消息并相应地更新那里的数据。 我喜欢这种方法,但已经可以看到数据如何失去同步。

有没有选项D?

D)一个内部面临访问另一个数据库。

对我来说这是最好的方法。 在客户方面,你不想丢失任何东西,所以如果你想共享访问,你将有一个方法来跟踪它。

第二点,如果数据库在非军事区内,那么只从内部 – > dmz进行信任是更好的办法。

第三点,如果访问是一个问题,那么创build一个跟踪器服务,在两个数据库中读取和同步该表。