Eventide is currently the operational, production microservice backbone for a range of financial technology implementations, covering scenarios including:
- Consumer Mobile Banking
- Personal Lending
- Loan Origination
- Loan Servicing
- Affiliate Programs
- Bill Pay
- Wealth Management
Eventide was developed in the course of building applications at a consumer financial services company that had been using microservices, messaging, and a traditional message bus.
In early 2015, the team was using a popular Java-based toolkit for building evented services and reactive applications, but found some of its tools and approaches a poor fit. The team wanted durable messaging, and extending the toolkit turned out to be more onerous than assumed.
The Event Store database was subsequently chosen as the core technology to build upon. Event Store was a good fit because of it's event-oriented approach, its roots in event sourcing, the persistence of messages sent to it, and the quorum replication of its cluster.
The available open source client libraries for Event Store were good enough for storing and retrieving data, but were quite primitive. There were no libraries that supported higher-level, event-sourced microservices development concerns like message schemas and message handlers, entity class implementation, projection of event streams onto entity instances, caching, consumer implementation and operation, and a handful of other concerns.
Starting from scratch, a new Event Store client library was built that would be a better fit with the higher level libraries that would be closer to application-level code. New autonomous services supporting a growing product line and list of features were built on this new toolkit. These libraries were built as open source and made available via GitHub.
With a fairly comprehensive toolkit for event sourcing and microservices in-hand, conversations with other financial technology startups started.
One of the requests given to the team was for an implementation of the stack that would work on Postgres. Early adopters were leery of adding another database technology to their operations workload, and most of them were already running Postgres, either as a hosted service like AWS RDS, or in their own infrastructure.
In May of 2016, the Postgres implementation was begun. It lead to a considerable re-thinking of the original Event Store implementation. The Postgres implementation was completed in the fall of 2016. The Event Store implementation was re-written in January of 2017 to conform to the common, core abstractions created as part of the Postgres implementation work.
While the development of Eventide represents several man-years of development and production operation, the stack has not been aggressively promoted. It was critical to battle-test and prove the implementation before encouraging a wider range of companies to adopt it. The Eventide team began outreach efforts in in earnest in early 2017, speaking at meetups, conferences, and teaching workshops.
The documentation effort began in December 2016. Eventide will reach a v1 release once documentation and materials are considered sufficient for a new adopter to get their feet wet in event-sourced autonomous services without direct support from the Eventide development team.