Integration styles
1. File Transfer
FTP, HDFS, SCP, SMB, CIFS
Pros:
- Universal integration style
- Integration simplicity
- System abstraction
Cons:
- Error processing
- Data synchronization timeliness
- Data-only transfer
2. Shared Database
SQL, ODBC, JDBC, OLE-DB, RDA
Pros:
- Near-universal integration
- System abstraction
- System decoupling
- East of integration
Cons:
- Doesn't work well with ORM (A can't assume table is not touched by others)
- performance bottleneck issues (if too many apps attached to the same db)
- Schema change issues
- Data ownership issues
3. Remote Procedure Call
REST, SOAP, RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture), WebSockets , CGI (Common Gateway Interface)
Pros:
- preserve data encapsulation and ownership
- external systems integration
- mature frameworks and tools
Cons:
- tight system coupling (if B is down, A has no other ways to defer it)
- async communication (on truly queueing mechanism with RPI)
- broadcast capabilities
4. Messaging
JMS (Java Message Service), MSMQ (Microsoft Message Queue), AMQP (Advanced Message Queuing Protocol), AWS SNS, AWS SQS, STOMP (Simple Text Oriented Messaging Protocol), SMPP (Short Message Peer-to-Peer SMS Messaging), MQTT (MQ Telemetry Transport - M2M/IOT Messaging), JT/400 (AS400 Data Queue)
Pros:
- Highly decoupled system
- Guaranteed delivery
- Async communication
- Broadcast capabilities
- East of scalability
Cons:
- Integration beyond firewall (RPI shines here)
- Implementation complexity
- Testing complexity
- Cross platform standards
- Async error handling
The Good Parts of AWS with Daniel Vassallo
They talked about AWS technologies, with the focus on what you really need to build an application. Some notes I have:
- You might be disappointed with DynamoDB if you get from RDBMB to that. It's more similar to Redis than MySQL;
- Always use EC2 by default;
- With S3 you can separate storage and computing, one of the least appreciated values of S3 is you can think of S3 as having infinite bandwidth for all practical purposes. And use the default one at the beginning.
- Default to network load balancers in general as ALB has some scale issues but NLB generally won't because it's a big multi-tenant router, you will have to use all of AWS's capacity to have issues.