Skip to content

Design doc

Warren Zhu edited this page Jun 25, 2018 · 4 revisions

Design goal and decision

  1. Seamless Spring Cloud integration with Azure. User can easily change into Azure backed service without changing any code. Only dependency and few configuration needed.
  2. Least configuration. By taking advantage of Spring boot auto config, choosing appropriate default properties based on Azure Resource Management API. Besides that, users could override these properties by providing their own.
  3. Provision resource automatically. If resource is non existed, it will created under user-provided subscription and resource group. This will save efforts of manually creating such resources.
  4. Complete ecosystem for micro-service architecture. By supporting as many Azure service as possible, users could enjoy full benefits provided by Spring Cloud without tightly coupling with one specific cloud provider.

Planned feature

Feature Azure Service Description Status
Spring cloud Cache Starter Redis Auto config of redis properties
Spring cloud Resource Storage account Mapping storage as Spring resource
Spring cloud JDBC starter Sql Database
Mysql
PostgreSql
Auto config of sql database
Spring cloud messaging Event Hub
Service Bus
Queue Storage
Notification Hub
Inbound and outbound adapter for consuming and producing message
Spring cloud stream binder Event Hub Event hub binder to provide as many function as Kafka
Spring cloud stream starter Kafka-HDInsight
Event Hub with Kafka API
Auto config of Kafka properties
Spring cloud CosmosDB starter Cosmos DB Auto config of connection properties and Spring Data CosmosDB
Spring cloud logging starter Application Insight Auto config of logger
Spring cloud trace Applcation Insight Auto config of sending trace
Spring Hadoop starter Hadoop(HDInisght) Auto config of hadoop
Spring mail SendGrid Auto config of mail service Blocked on no Azure management API
Spring cloud Function Azure Function Auto config of Azure Function