Extensible (= easy to integrate and extend)
Event-driven Architecture is a good mechanism, if not the best, to integrate systems while maintaining them decoupled. Each participant reacts to each others interactions without the need for data replication and other brute force techniques typically used in “classic” integrations. With this approach, systems are easy to integrate and extend, that’s the plain truth.
Conversations between decoupled systems are less affected by outages, as well as they react better to overloads and peaks. In addition, if you put a Kafka topic in between, no message will be lost… And each system will be able to process its load according to their capacity, being up and running all teh time and not affecting the other systems in the same way as if they were unavailable or working intermitently.
Don’t reinvent the wheel. The best place for an Enterprise Data Model is an (Enterprise) Database with relational and documental (JSON) support (that is called multi-model). So, is the data model really portable? Well, you can replicate or clone data… That gives you the choice to create (micro)-services (that is, business logic) in many regions and put the data close to the logic.
So, where the portability comes from? Well, it is in the fact that containerized micro-services(the logic) can be moved from one cluster to another (or between regions) in the same cloud vendor, or even they can be moved to a different vendor or distributed across them (multi-cloud. That gives you the freedom to change in case you are not happy with your vendor, the same way you do with your voice&data carrier!!
So now that you are portable, right? Cool, you are a little bit freer… you can move to another vendor… or even you can be acquired by others that will be able to integrate your solution better…
Wide Adopted Industry Data (and Object) Model
Data models are the foundation of information systems. They have been out there for decades and will be. Today we can get the benefit from relational+JSON data models. There are several clients who adopted solutions in the market with huge data models that have been growing (or getting fat) so far.
Data models for each specific industry already exist in many commercial solutions with a maturity degree that provides all the capabilities needed to achieve business needs. And yes, there are new players in the market that have brought a simpler, fresh and new set of suites, but let them time to get fat (or even disappear… or be acquired by others… who knows).
API First (or close to first)
Enterprise Financial, Supply Chain, Marketing, Service, Sales, and many other application suites were not designed with the API’s first approach. Maybe brand new suites, yes but, taking into account the big amount of functionality and expertise put in there, perhaps it would be a good idea that classic vendors will re-engineer their suites in order to put an API layer on top of the data model and the logic close to that data model. That way all those big and complex knowledge could be exposed easily to be consumed with the API economy approach.
Yessss, eeeeevent driiiiiven, not typical push-pull mechanisms, no. An event-driven system is able to register all the events happening in it, and then, is capable of distributing then to all the subscribers it has. To create an event-driven architecture you need a database (persistent store of data), message queues (temporary store of messages or events) and a sort ob background procedures sending data to subscribers by means of callback hooks that those subscribers are exposing in order to send data back to him accordingly.