blob: 0d0d7be206a0e3026caa8b8dc828205584f174b8 [file] [log] [blame]
= Integrations with databases and message brokers
:page-toclevels: 3
include::partial$include.adoc[]
Stateful services need a datastore. You can store state using xref:concepts:event-sourcing.adoc[Event Sourcing] or CRUD (Create, Read, Update, Delete). The example in the tutorial demonstrates the Event Sourcing option. The tutorial uses PostgreSQL for xref:microservices-tutorial:entity.adoc[storing the events] and xref:microservices-tutorial:entity.adoc[creating a Projection for queries]. An alternative to using an RDBMS is described in xref:how-to:cassandra-alternative.adoc[]. For more details on migrating your model from CRUD to Event Sourcing review xref:how-to:from-crud-to-eventsourcing.adoc[].
To decouple communication between different Microservices, you can publish messages to a broker, such as Apache Kafka. The tutorial illustrates how to use Apache Kafka in xref:microservices-tutorial:projection-kafka.adoc[a projection publishing to Kafka]. See xref:concepts:internal-and-external-communication.adoc[Internal and External Communication concepts] for more information.
== Data store integrations
You can find examples of data store integrations on the following pages:
* xref:aws-rds.adoc[Using the Amazon Relational Database Service (RDS)] (managed RDBMS in AWS)
* xref:gcp-sql.adoc[Using GCP Cloud SQL] (managed RDBMS in GCP)
* xref:astra.adoc[] (managed Cassandra)
* xref:cassandra.adoc[]
* xref:jdbc.adoc[Databases that support JDBC]
== Message broker integrations
You can find examples of message broker integrations on the following pages:
* xref:aws-msk.adoc[Using Amazon Managed Streaming for Apache Kafka (Amazon MSK)]
* xref:confluent-cloud.adoc[]
* xref:strimzi.adoc[]